Selenium selenium 定位不了

强势振兴 · 2018年12月12日 · 最后由 luhaitao1 回复于 2019年06月15日 · 1686 次阅读

大师瞧一瞧

共收到 19 条回复 时间 点赞

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

试试用 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())

强势振兴 回复

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

强势振兴 回复

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

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

仅楼主可见
强势振兴 回复

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

sandy 回复

具体用哪个语法

强势振兴 回复

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

sandy 回复

是的

你这是下拉选择框吧

Bug_Hunter 回复

不行呀

13楼 已删除

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

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

程航 回复

还有别的方法得到 xpath

Jerry li 回复

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

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

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

  1. 看下你要操作的这个元素是什么类型,支不支持 send keys
  2. 不建议全部使用 xpath 定位元素, 多用 id 、name 这些较为稳定的属性
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册