天天看点

实践过程中遇到的小问题(一)

一、元素定位,定位到了元素但是不跳转

  1. 未设置等待时间
  2. 设置了隐式等待时间,还要再加显式等待时间
  3. 看看页面元素是否有frame或者iframe:driver.switch_to_frame(0),第几个frame框架括号里就写数字几
  4. 需要手写xpath进行定位

二、下拉列表

1.导入(此方法只适合select元素的,而不适合网页标签)

from selenium.webdriver.support.ui import Select  或者

from selenium.webdriver.support.select import Select
           

法一:直接定位列表框中元素,如:选择”每页显示20 条”

driver.find_element_by_css_selector('xxx').click()

法二:通过index 即索引

se=driver.find_element_by_id('xxx') #xxx为下拉框id

Select(se).select_by_index(2)

法三:通过value

se=driver.find_element_by_id('xxx')

Select(se).select_by_value('20')

本例中Value 即为10,20,50

法四: visible_text

se=driver.find_element_by_id('xxx')

Select(se).select_by_visible_text('每页显示50 条')

本例中visible_text 为”每页显示10 条”,20 条,50 条

以上方法是实现逐个选取值,若想循环遍历可以先计算列表框总数,再用for 循环

for i in range(len(Select(se).options)):

Select(se).select_by_index(i)

注: 用len 方法求总数Select(se).options,再把index 用变量代替便可。

2.非select标签的下拉列表

源码:

实践过程中遇到的小问题(一)

 要定位UserStory代码如下:

driver.find_element_by_xpath(".//li[text()='UserStory']").click()
           

是时候学会自己写xpath进行定位了

三、使用selenium进行定位时,页面会出现变动

正常页面:

实践过程中遇到的小问题(一)

但是当单击复选框时,页面如下:

实践过程中遇到的小问题(一)

试用xpath和class_name进行定位都会出现这种问题,目前不知道原因和解决办法,以后解决了在更新。

继续阅读