一、写在前面上篇文章介绍的是关于浏览器的常见操作 , 接下来 , 我们将继续分享关于元素的常见操作 , 建议收藏、转发!
二、元素的状态在操作元素之前 , 我们需要了解元素的常见状态 。
1、常见元素状态判断 , 傻傻分不清
- is_displayed()
- is_enabled()
- is_selected()
element.is_displayed()注意:
判断button是否显示 , 和is_displayed()容易混淆的是is_enabled() 。
区别在于 , 直接用element.is_enabled()方法判断button是否显示 , 返回值为true , 因为button是使用CSS方法判断是否有效 , 这并不是真正的方法 , 需要判断其class中是否有值为disabled来判断是否真正处于disabled的状态.
3、is_enabled()判断元素是否有效 , 即是否为灰化状态
element.is_enabled()4、is_selected()一般判断表单元素 , 如radio或checkbox是否被选中 。
element.is_selected()三、常见元素的操作这部分主要演示的常见点击操作 , 例如:文本输入、复选框、单选按钮、选择选项、鼠标点击事件等等 。
1、元素点击操作演示案例:
![四 Selenium4.0+Python3系列 - 常见元素操作(含鼠标键盘事件)](http://shimg.jingyanzongjie.com/230726/1Z9162A7-0.png)
文章插图
点击(鼠标左键)页面按钮:click()
示例代码如下:
driver.get("http://localhost:8080/click.html")button1 = driver.find_element(By.ID, "button1")is_displayed = button1.is_enabled()if is_displayed: button1.click()2、Submit操作演示案例:
![四 Selenium4.0+Python3系列 - 常见元素操作(含鼠标键盘事件)](http://shimg.jingyanzongjie.com/230726/1Z91CQ1-1.png)
文章插图
点击(鼠标左键)页面按钮:submit()
示例代码如下:
driver.get("http://localhost:8080/submit.html")login = driver.find_element(By.ID, "login")is_displayed = login.is_enabled()if is_displayed: login.submit() # login.click()小贴士:
支持submit的肯定支持click,但是支持click的 , 不一定支持submit , 可能会报错如下:
3、输入、清空输入操作演示案例:
![四 Selenium4.0+Python3系列 - 常见元素操作(含鼠标键盘事件)](http://shimg.jingyanzongjie.com/230726/1Z91A318-2.png)
文章插图
输入、清空输入操作:clear(), send_keys()
示例代码如下:
username = driver.find_element(By.CSS_SELECTOR, "input[type='text']")username.clear()username.send_keys(u"公众号:软件测试君")# 输出:公众号:软件测试君print('输入值:{0}'.format(username.get_attribute("value")))time.sleep(1)四、鼠标键盘事件操作1、模拟回车操作模拟打开百度搜索输入博客园 , 回车操作 , 示例代码如下:
driver.get("https://www.baidu.com/")driver.find_element(By.ID, "kw").send_keys("久曲健 博客园", Keys.ENTER)2、常见鼠标操作演示案例:
![四 Selenium4.0+Python3系列 - 常见元素操作(含鼠标键盘事件)](http://shimg.jingyanzongjie.com/230726/1Z9163X4-3.png)
文章插图
常见鼠标操作很多 , 如左键点击、悬浮、移动、双击、右键等等 , 示例代码如下:
driver.get("http://localhost:8080/mouse.html")# 鼠标左键点击ActionChains(driver).click(driver.find_element(By.ID, "mouse2")).perform()time.sleep(1)driver.switch_to.alert.accept()time.sleep(1)# 鼠标悬浮并移动操作ActionChains(driver).move_to_element(driver.find_element(By.ID, "mouse1")).pause(1).move_to_element( driver.find_element(By.ID, "mouse6")).perform()time.sleep(1)driver.switch_to.alert.accept()# 鼠标双击操作ActionChains(driver).double_click(driver.find_element(By.ID, "mouse3")).perform()time.sleep(1)driver.switch_to.alert.accept()# 鼠标右键ActionChains(driver).context_click(driver.find_element(By.ID, "mouse5")).perform()
经验总结扩展阅读
- 2023年农历八月十四宜下葬吗 2023年9月28日下葬好吗
- 2023年农历八月十四宜入土吗 2023年9月28日入土行吗
- 2023年农历八月十四宜穿丧服吗 2023年农历八月十四穿丧服吉日
- 2023年农历八月十四宜立墓碑吗 2023年9月28日立墓碑黄道吉日
- 2023年9月28日适合开造陵墓吗 2023年农历八月十四开造陵墓吉日
- 2023年9月28日入棺好吗 2023年农历八月十四宜入棺吗
- 2023年农历八月十四宜进棺材吗 2023年9月28日进棺材吉日一览表
- 2023年农历八月十四宜粉刷墙壁吗 2023年农历八月十四粉刷墙壁吉日
- 2023年农历八月十四宜修理仓库吗 2023年9月28日修理仓库好吗
- 2023年9月28日建造仓库吉日一览表 2023年农历八月十四建造仓库吉日