selnium无法定位到元素时检查三种情况

无法定位到元素时,一般检查三种情况可以解决百分之九十九的问题:

1.检查定位的元素的父级是否存在frame,如果有,先swith_to.frame()切入。
 (检查方法:直接在元素中搜索frame关键字)

2.检查定位的书写正确性,如果使用ID、NAME无法定位时,请使用XPATH的定位方式定位元素。
 (XPATH有时定位单一标签无法定位,请使用双重定位,例://*[@id="Province"]/a/span[@id="searchBtn"])

3.假设上述两种方法均未解决定位问题,请在定位之前添加强制等待time.sleep(3)
  (以上方法均尝试后问题仍未解决,请返回至1、2重新检查)

注意:如果是使用js写的,请使用js定位方法去进行定位

js = 'document.getElementByID("su").click();'
driver.excute_script(js)

以下总结了5种js定位的方法

除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象

1.通过id获取

document.getElementById(“id”)

2.通过name获取

 document.getElementsByName(“Name”)

返回的是list

3.通过标签名选取元素

document.getElementsByTagName(“tag”)

4.通过CLASS类选取元素

document.getElementsByClassName(“class”)

兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法

5.通过CSS选择器选取元素

document.querySelectorAll(“css selector")
原文地址:https://www.cnblogs.com/xianyulouie/p/11041798.html