Selenium selenium 定位不了

强势振兴 · December 12, 2018 · Last by luhaitao1 replied at June 15, 2019 · 1501 hits

大师瞧一瞧

共收到 19 条回复 时间 点赞
  1. 看下你要操作的这个元素是什么类型,支不支持 send keys
  2. 不建议全部使用 xpath 定位元素, 多用 id 、name 这些较为稳定的属性

你的xpath都这么写吗,不是xpath的问题,xpath什么都会定位到的,你的xpath,写得太惨不忍睹了

楼主也没有说要定位什么啊。是什么定位不到。怀疑是chrome右键 ‘Copy Xpath’得到的,这样太难看了。

Jerry li 回复

class标签
除了xpath没别的元素可定位了。

hchengmx 回复

还有别的方法得到xpath

@强势振兴 可以自己删减一些节点

你的报错不是找不到,是不能focus这个元素

8Floor has been deleted
liushen 回复

不行呀

你这是下拉选择框吧

sandy 回复

是的

强势振兴 回复

可以用JS直接点击要点的,不用把下拉框点开

sandy 回复

具体用哪个语法

强势振兴 回复

百度一下你就知道了。。其实不但元素定位不到。。后面有坑就是动态框也定位不到的。。。踩踩你就知道怎么搞了。
用onclick

Author only

😂 你这么一堆定位堆起来好乱啊,可以把数据和操作分离起来搞

强势振兴 回复

js = 'document.getElementsByClassName("ico")[0].click();'
driver.execute_script(js)
类似这样子

强势振兴 回复

driver.find_element_by_id("signIn").click() 点击一般都用click不用sendkey

试试用js
def test_executeScript(self):
url = 'http://www.baidu.com'
self.driver.get(url)

searfchInputBoxjs = 'document.getElementByid("kw").value=“测试数据”'
searfchButtonjs = 'document.getElementByid("su").click()'

try:
self.driver.execute_script(searfchInputBoxjs)
time.sleep(2)
self.driver.execute_script(searfchButtonjs)
time.sleep(2)
self.assertEqual('百度百科' in self.driver.page_source)
except WebDriverException as e:
print('没有找到元素')
except AssertionError as e:
print('页面不存在断言的关键字')
except Exception as e:
print(traceback.print_exc())

先定位下拉框,再用鼠标悬停点击操作就行

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up