Python+Selenium库的入门实例

        基本函数的讲解我就不列举了,网上有很多,我在写实例的时候也是参考学习了下面链接的文章,有兴趣的同学可以仔细看看。软件安装的话可以参看我的上一篇文章(不过我用的ma cOS,后面代码也可能会与windows的有一点点区别)。

参考链接:https://blog.csdn.net/weixin_36279318/article/details/79475388

        不多说了,直接贴上我的入门代码:

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from time import sleep

#获取浏览器句柄
browser=webdriver.Chrome()

#发送URL请求
browser.get("http://zwfw.gxzf.gov.cn/")

#设置浏览器大小
browser.maximize_window()

#搜索输入框输入"户口迁入"  id是唯一的(如果id带长串数字为自动生成,不能用于定位)
input1=browser.find_element_by_id("hotword")
input1.send_keys("户口迁入")

#模拟组合键全选/复制   Crtl/Command+a  Crtl+C
input1.send_keys(Keys.COMMAND+'a')
input1.send_keys(Keys.COMMAND+'c')

#!!注意:使用后会发现并没有复制到内容,因为在这个输入框使用Crtl/Command+a并不能框选到内容(有些页面是ok的,具体得看页面实现)
#模拟鼠标双击使用内容选中
ActionChains(browser).double_click(input1).perform()
input1.send_keys(Keys.COMMAND+'c')

#点击搜索一下按钮 class可能不唯一
browser.find_element_by_class_name("text_input_search").click()

#!!!注意:网页跳转到了新标签页面后,但代码仍定位在原标签页面
#获得当前窗口句柄
cur_handle = browser.current_window_handle
#获取当前窗口标题
print("1: "+browser.title)

#刷新浏览器
browser.refresh()

#绝对路径xpath定位输入框输入"户口迁出" 表达式格式:[@属性="值"]
input2=browser.find_element_by_xpath('//*[@id="hotword"]')
input2.send_keys("户口迁出")
#打印输入框value属性值
print("2: "+input2.get_attribute('value'))

#css样式定位
#搜索按钮并点击 格式: #id  .class属性  标签
browser.find_element_by_css_selector("#redgo").click()
#输出页面最下面主办方并输出
element = browser.find_element_by_css_selector(".firstline")
print("3: "+element.text)

#css多层级定位
#标签与属性定位输入框清除内容  格式:标签[属性='值']
input2=browser.find_element_by_css_selector("input[id='hotword']")
input2.clear()

#父级id与后代id定位输入框输入"人才就业"  格式:#id #id
element=browser.find_element_by_css_selector("#barrierfree_container #hotword")
element.send_keys("人才就业")

#.class定位搜索按钮  格式:#id .class
search=browser.find_element_by_css_selector("#barrierfree_container .text_input_search")
search.click()

#超链接标签定位<a href=""></a>
link1=browser.find_element_by_link_text("个人服务")
link1.click()
# 定位"法人服务"  partial_link_text支持模糊查询
link2=browser.find_element_by_partial_link_text("法人")
link2.click()

#通过tagName标签进行元素定位
spans = browser.find_elements_by_tag_name("span")
for span in spans:
    if span.text=="联系我们":
        print("4: "+span.text)

#页面内iframe切换
#使用name定位获取法人服务页面的热门服务窗口
iframe1=browser.find_element_by_name('frRmfwIframe')
#切换到内嵌iframe
browser.switch_to.frame(iframe1)

#回到外层主页面
#browser.switch_to.default_content()
#!!!网页刷新/跳转/回退后browser会回到默认最外层
browser.refresh()

#使用xpath获取注册登录页面
iframe2=browser.find_element_by_xpath('//iframe[@id="loginiframe"]')
#切换到内嵌注册登录iframe
browser.switch_to.frame(iframe2)
#点击登,跳转到登录页面
browser.find_element_by_id('goto').click()

#休眠3秒
sleep(3)

#浏览器后退
browser.back()

#经过回退,browser回到了最外层,可以直接定位外层元素
#页面经过跳转后,变量已经过时
input3=browser.find_element_by_id("hotword")
#模拟组合键粘贴Ctrl+v
input3.send_keys(Keys.COMMAND,'v')
#模拟输入回车键
input3.send_keys(Keys.ENTER)

#模拟鼠标在微信按钮上做悬停操作
wx=browser.find_element_by_id('zwApp')
ActionChains(browser).move_to_element(wx).perform()


sleep(3)

#获得所有打开窗口的句柄
all_handles = browser.window_handles

#遍历所有窗口
for handle in all_handles:
    if handle != cur_handle:
        browser.switch_to.window(handle)
        if browser.title=="搜索结果":
            #关闭当前窗口
            browser.close()

sleep(3)
#关闭所有窗口
browser.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值