0


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 最重要的一种方法,但是还没了解透

本文转载自: https://blog.csdn.net/weixin_45786253/article/details/125855334
版权归原作者 还有什么昵称没注册? 所有, 如有侵权,请联系我们删除。

“selenium遇到的问题总结(一)”的评论:

还没有评论