2022-10-23课件
2022-10-23 08:52:50    35    0    0
python-w73

Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器。使
用Selenium可以模拟人工对web浏览器进行自动化操作。

安装Selenium

  1. pip install Selenium

要使用Selenium,还需要下载安装浏览器驱动。

驱动下载

配置webdriver(EDGE)

下载Microsoft Edge的webdriver,找到对应版本下载,解压后得到一个msedgedriver.exe

然后可以将msedgedriver.exe放到某个文件夹中,然后将路径配置到环境变量中

配置环境变量

手动创建一个存放浏览器驱动的目录,如: D:\webdriver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)
丢到该目录下,接着设置环境变量。

测试是否安装成功

title

元素定位方法

定位单个元素

selenium提供8种元素定位方式,包括DOM元素id, name和tag等等。它还支持xpath和css选择器。返回结果是元素对象。

title

接下来将以下面这个html页面为例演示如何使用以上各种定位方法。

title

通过id定位:

  1. dr.find_element_by_id("kw")

通过name定位:

  1. dr.find_element_by_name("wd")

通过class name定位

  1. dr.find_element_by_class_name("s_ipt")

通过tag name定位:

  1. dr.find_element_by_tag_name("input")

通过css定位,css定位有N种写法,这里列几个常用写法:

  1. dr.find_element_by_css_selector("#kw")
  2. dr.find_element_by_css_selector("[name=wd]")
  3. dr.find_element_by_css_selector(".s_ipt")
  4. dr.find_element_by_css_selector("html > body > form > span > input")
  5. dr.find_element_by_css_selector("span.soutu-btn> input#kw")
  6. dr.find_element_by_css_selector("form#form > span > input")

通过link text定位:

  1. dr.find_element_by_link_text("新闻")
  2. dr.find_element_by_link_text("hao123")

通过partial link text定位(根据link文本模糊查询):

  1. dr.find_element_by_partial_link_text("新")
  2. dr.find_element_by_partial_link_text("hao")
  3. dr.find_element_by_partial_link_text("123")

定位多个元素

selenium还提供了定位多个元素的方法,只需要将find_element_by替换成find_elements_by即可。返回结果是定位元素列
表。

  1. find_elements_by_name
  2. find_elements_by_xpath
  3. find_elements_by_link_text
  4. find_elements_by_partial_link_text
  5. find_elements_by_tag_name
  6. find_elements_by_class_name
  7. find_elements_by_css_selector

操作元素方法

title

警告框处理

在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到
alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作。

title

  1. # 接受警告框
  2. driver.switch_to.alert.accept()

Pre: 2022-10-23课堂代码

Next: 2022-08-27课件

35
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments
Table of content