selenium遇到的问题总结(一)

一、新窗口中的元素如何定位和操作

问题:点击某些链接,导致新标签页出现,需要进行窗口切换

进行窗口切换:1、找到新窗口的名字;2、切换到新窗口

#1.1找到新窗口的句柄,-1表示最后一个窗口,0表示第一个窗口
new_window=driver.window_handles[-1]
#1.2切换到新窗口
driver.switch_to.window(new_window)

二、脚本稳定性问题

运行10次,八次成功,一两次失败,如何提高脚本的稳定性

1、在稳定性不好的操作前加一个时间等待

2、隐式等待:driver.implicitly_wait(10)

3、优点:智能判断下一行代码需等待多久再执行,只需要写一次,后面所有代码都生效

      缺点:有些特殊情形不生效

三、复杂的元素定位问题(find_elements:找所有满足条件的页面元素,然后通过下标选中第几个元素,经常用来组合ClassName,tagname使用)

比如:ID是动态变化,xpath,css selector都包含ID,class与其他元素的class一致

代码:

driver.find_elements_by_class_name("class值")[1]

四、窗口最大化

driver.maximize_window()

五、find_element_by_class_name()

不支持同时用两个class name定位(class name 中有空格,例如:classname为aaa_eee_03 fl),可以用css_selector代替class_name(),使用多个class_name()定位,在每一个class name前面加上小数点即可

例如:

driver.find_element_by_css_selector(".aaa_eee_03.fl")

六、find_elements()和find_element()

find_elements()可以找到页面中所有符合条件的页面元素

find_element()找到的是页面中满足条件的第一个页面元素

find_element()==find_elements()[0]

七、Select(页面元素)

XX=driver.find_element_by_id("ID编号")
Select(XX).select_by_visible_text("XXXX")

八、元素定位方法总结

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text() #未了解

find_element_by_xpath()

find_element_by_css_selector()

#优先顺序:ID,name,class name,<a>才适合link_text();比较万能的方法:xpath(但是通过右键粘贴的xpath有可能是错的,定位不到的时候需要自己验证一下);css selector 最重要的一种方法,但是还没了解透
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值