IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python+Selenium库的入门实例 -> 正文阅读

[开发测试]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()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:20:58  更:2021-09-05 11:21:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:17:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码