selenium定位方法
一、八大元素定位方法:
find_element_by_id(“id”)
find_element_by_name(“name”)
find_element_by_class_name("class_name")
find_element_by_tag_name("tag_name")
find_element_by_link_text("text")
find_element_by_partial_link_text("link_test")
find_element_by_xpath("xpath")
注意xpath使用时只能使用单引号‘’,使用双引号“”会提示无效的语法
find_element_by_css_selector("css_selector")
二、模糊匹配法
三、绝对路径匹配
更多定位方法参考这篇博文:https://www.cnblogs.com/simran/p/9234783.html
元素定位问题:NoSuchElementException: Message: no such element: Unable to locate element
1.检查是不是元素可变(如动态id)
2.元素定位方式是不是有错误
3.页面重新渲染,变成旧的元素,再点击肯定会失败
常见场景:1、循环点击删除按钮、2、点击页面按钮,页面重新渲染
4.页面嵌套了iframe
5.没有切换到新的窗口导致找不到元素
在浏览器操作中,通常会需要打开多个浏览器界面,如果不使用switch_to.window,程序会每次还去程序打开的最初始的那个界面寻找元素,这样就导致新界面中的元素找不到。
这个时候,就需要通过switch_to.window(windowhandles)方法来对浏览器页面进行切换,其中参数windowhandles为网页的窗口句柄。
switch_to.window()方法的使用:
1 handles = driver.window_handles #获取当前浏览器的所有窗口句柄 2 driver.switch_to.window(handles[-1]) #切换到最新打开的窗口 3 driver.switch_to.window(handles[-2]) #切换到倒数第二个打开的窗口 4 driver.switch_to.window(handles[0]) #切换到最开始打开的窗口
如何获取当前网页句柄?
driver.current_window_handle
切换window需要注意:如果前一个页面操作还没完成便切换window,会导致前一页面未完成的操作操作失败,进而程序抛错。

浙公网安备 33010602011771号