day08-Selenium Webdriver

目录

Selenium Webdriver

安装ChromeDriver

webdriver的工作原理

自动化测试的LOVE四步法

实操测试

webdriver常用API

webdriver定位

元素定位的常规原则


Selenium Webdriver

安装ChromeDriver

ChromeDriver Mirror到此链接安装对应版本的WebDriver

 

将下载路径配置环境变量

webdriver的工作原理

自动化测试的LOVE四步法

实操测试

from selenium import webdriver
import time
​
driver = webdriver.Chrome(r'D:\Program Files (x86)\Chromedriver\chromedriver_win32\chromedriver.exe')
​
driver.get('https://www.baidu.com/?tn=88093251_30_hao_pg')
driver.find_element_by_id('kw').click()     # 定位id为kw元素 进行点击
driver.find_element_by_id('kw').clear()     # 清空元素内容
driver.find_element_by_id('kw').send_keys('webdriver')      # 输入内容
driver.find_element_by_id('su').click()     # 点击元素
print(driver.page_source)       # 输出网页源码
time.sleep(2)
driver.close()      # 关闭当前窗口网页

driver.get()可以用来打开本地的文件,只需要在get里输入本地的路径。

webdriver常用API

  • 打开:driver.get(url)

  • 关闭:driver.quit()结束当前进程 driver.close()仅关闭当前窗口

  • 设置窗口大小:driver.set_window_size(w,h)

  • 最大化窗口:driver.maximze_window()

  • 获取网页源码:driver.page_source

  • 获取窗口名称:driver.name

  • 刷新页面:driver.refresh()

  • 获取页面标题:driver.title

  • 获取当前页面url地址:driver.current_url

  • 获取当前页面截图:driver.get_screenshot_as_file(path)

from selenium.webdriver.common.keys import Keys  发送复合按键
driver.find_element_by_id('kw').send_keys('Webdriver')      # 输入内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL+'a')

输入Webdriver之后全选 输入框的内容 ctrl+A全选

from selenium.webdriver.support.ui import Select    # 下拉框操作

Select(driver.find_element_by_id('kw')).select_by_visible_text()
Select(driver.find_element_by_id('kw')).select_by_value()

select_by_visible_text() 根据下拉框 选项的文本进行选择

select_by_value() 根据下拉框 选项的value属性值进行选择

webdriver定位

  • driver.find_element() 返回第一个符合条件的元素

  • driver.find_elements() 以列表的形式返回所有符合条件的元素

以上两个函数可以通过使用

  • id

  • class 无法使用复合样式定位 class中写了两个样式只能选其中一个样式名进行定位

  • name

  • tag name

  • partial link text 超链接显示的文本 可模糊匹配

  • link text 定位超链接的文本 匹配完整

  • xpath

  • css selector

元素定位的常规原则

元素定位方式选择

  • 页面有id时,有限使用id来定位,其次是name

  • Xpath很强悍,但定位性能不是很好,它需要遍历文档上的每个节点来确定定位,当其他方法不好定位时可以使用

  • 定位一组相同元素时,可考虑使用tagname或者name

  • 定位连接时,可考虑linkText或partialLinkText

定位元素的注意事项

  • 找到待定位元素的唯一属性

  • 如果该元素没有唯一属性,则先找到能被唯一定位到的父元素/子元素/相邻元素,再使用xpath或css选择器进行基于位置的定位。

  • 不要使用随机唯一属性定位(如该属性值是随机生成的)

  • 最重要的是多跟研发沟通,尽量把关键元素加上ID或者name,并减少不合理的页面元素,例如重复ID这样的事情最好不要发生。

find_element和find_elements的区别

find_element返回一个符合条件的元素,找不到元素时会报错

find_elements返回符合条件的所有元素元素的列表,找不到元素时会返回空列表

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值