0


Selenium + Python 自动化测试05(特殊元素定位方法)

  1. 上一篇我们讲述了webdriver 元素操作方法。我们对常规操作有了一个基本的认识。接着我们详细讲述对特殊元素常见的一些基本操作方法,以便我们可以做很多功能操作的测试。

1、鼠标悬停的操作

1)常用方法

click:模拟鼠标单击操作

click_and _hold:模拟鼠标单击并且按住不放

double_click:鼠标双击

context_click:鼠标右击操作

drag_and_drop:鼠标拖曳

move_to_element:鼠标移动到指定的某个页面元素

perform():将之前一系列的ActionChains 执行

release:释放按下的鼠标

2)实操练习

需要用到的类

  1. **from **selenium.webdriver.common.action_chains **import **ActionChains *#键盘鼠标操作封装在ActionChains类中*

以下以百度为例的参考代码:

  1. driver.get(**"https://www.baidu.com"**) *#打开百度
  2. *driver.maximize_window()
  3. time.sleep(1)
  4. **'''
  5. 鼠标悬停的使用
  6. '''
  7. ***#找到设置元素位置->悬停->点击高级搜索
  8. *set_config**=**driver.find_element_by_id(**"s-usersetting-top"**) *#设置的位置
  9. *ActionChains(driver).move_to_element(set_config).perform() *#模拟鼠标悬停
  10. *time.sleep(3)
  11. driver.find_element_by_xpath(**"//*[@id='s-user-setting-menu']/div/a[2]/span"**).click() *#点击高级搜索
  12. *time.sleep(3)

可以自动打开“高级搜索 ”

2、select 操作

我们经常遇到下拉框需要选择 ,这时候可以用到selenium用来处理select元素的方法

通过select_by_index 方式来触发,实例 如下:

操作这个网站:https://www.saucedemo.com/

  1. username **= ****"standard_user"
  2. **password **= ****"secret_sauce"
  3. **print(**"登录的用户名是:%s,密码是:%s"%**(username,password))
  4. *#打开浏览器,并最大化
  5. *driver.get(**"https://www.saucedemo.com/"**) *#打开练手的网站
  6. *driver.maximize_window()
  7. *# 输入用户名,
  8. *driver.find_element_by_name(**"user-name"**).send_keys(username) *# by name 定位
  9. # 输入密码
  10. *driver.find_element_by_name(**"password"**).send_keys(password) *# by name 定位
  11. *time.sleep(1)
  12. *# 点击登录按钮
  13. *driver.find_element_by_id(**"login-button"**).click() *# by ID 定位
  14. *time.sleep(3)
  15. **'''
  16. select 的使用,选择下拉框
  17. '''
  18. ***# 找到下拉框位置
  19. *se_location **= **driver.find_element_by_xpath(**"//*[@id='header_container']/div[2]/div/span/select"**)
  20. *# 通过序号选择1-“Z to A”,索引是从0开始
  21. *Select(se_location).select_by_index(1)
  22. time.sleep(3)

以上代码实现下图中默认是A to Z改为:Z to A

3、利用JavaScript 操作页面元素

webdriver 对部分浏览器上控件并不是直接支持的,如浏览器右侧滚动条,富文本等。而是通过JavaScript间接操作。webdriver提供了execute_script() 和execute_async_script()两种方法来执行JavaScript代码。

1)基本操作说明

如百度为例:输入JavaScript代码来执行,可以看到下图结果

document.getElementById("kw").value="男人帮"

使用脚本实现:

  1. **'''
  2. 以百度为例说明JavaScript代码执行
  3. '''
  4. **driver.get(**"https://www.baidu.com"**) *# 打开百度
  5. *driver.maximize_window()
  6. time.sleep(1)
  7. js**=****'document.getElementById("kw").value="男人帮"'
  8. **driver.execute_script(js)
  9. time.sleep(3)

以上代码可以达到和上图搜索一样的效果

2)用JavaScript代码实现对滚动条的操作

  1. **"window.scrollTo(100,300)":对应滚动条横向和竖向移动的大小****'''
  2. 以百度为例说明JavaScript代码执行滚动条
  3. '''
  4. **driver.get(**"https://www.baidu.com"**) *# 打开百度
  5. *driver.maximize_window()
  6. *#设置浏览器窗口大小,目的是将滚动条显示出来
  7. *driver.set_window_size(700,700)
  8. driver.find_element_by_id(**"kw"**).send_keys(**"CSDN"**)
  9. driver.find_element_by_id(**"su"**).click()
  10. time.sleep(3)
  11. *#通过js拉动滚动条
  12. *js_tiao**=****"window.scrollTo(100,300)"
  13. **driver.execute_script(js_tiao)
  14. time.sleep(5)
  15. driver.quit()

另外,使滚动条滑到底部可以用如下JS代码

"window.scrollTo(0,document.body.scrollHeight)",执行后结果如下图:

本篇就介绍到这里,下一篇继续介绍复杂一些的操作方法。

每天进步一点点!


本文转载自: https://blog.csdn.net/weixin_45999406/article/details/140961006
版权归原作者 立黄昏粥可温 所有, 如有侵权,请联系我们删除。

“Selenium + Python 自动化测试05(特殊元素定位方法)”的评论:

还没有评论