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.没有切换到新的窗口导致找不到元素

selenium中switch_to.window()作用

在浏览器操作中,通常会需要打开多个浏览器界面,如果不使用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,会导致前一页面未完成的操作操作失败,进而程序抛错。

posted @ 2021-12-14 17:58  没醉  阅读(145)  评论(0)    收藏  举报