一、元素定位,定位到了元素但是不跳转
- 未设置等待时间
- 设置了隐式等待时间,还要再加显式等待时间
- 看看页面元素是否有frame或者iframe:driver.switch_to_frame(0),第几个frame框架括号里就写数字几
- 需要手写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标签的下拉列表
源码:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuczM0MTOzETMyATMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
要定位UserStory代码如下:
driver.find_element_by_xpath(".//li[text()='UserStory']").click()
是时候学会自己写xpath进行定位了
三、使用selenium进行定位时,页面会出现变动
正常页面:
但是当单击复选框时,页面如下:
试用xpath和class_name进行定位都会出现这种问题,目前不知道原因和解决办法,以后解决了在更新。