【发布时间】:2020-03-05 05:43:27
【问题描述】:
我正在尝试自动化网站上的一个流程,该流程会为其元素动态生成 ID:
ID 具有以下形式: ZCODE:FORM:j_1279323:元素
我设法为大多数元素制作了 CSS 或 XPATH 选择器。
我正在努力使用ul/li 元素,我设法用它的id 点击它,但不是用相对的XPath,这是我的目标:
我尝试了各种 xpath:
/html[1]/body/[1]/div[37]/div[1]/ul[1]/li[13]
还有:
//div[contains(@id, 'voie_panel')]/div/ul/li[13]
还有许多其他不同的方式.. 我测试的所有 xpath/css 选择器都可以在 chrome 开发者控制台中完美运行。
我只设法将列表下拉,但是当我尝试访问列表元素时......它超时了。
我正在使用WebDriverWait,我还尝试在必须加载程序的确切位置暂停程序以便单击列表。
我等待元素:
myElem = WebDriverWait(self.driver, 30).until(ec.element_to_be_clickable((BY.XPATH, css))
总结一下情况: 它使用 ID 可以顺利运行,但使用 xpath 或 css 选择器会超时
有人可以推荐一种策略来克服这个问题吗?
【问题讨论】:
-
你能分享你的
html代码 -
任何以
/html开头的 XPath 肯定会变得脆弱/不可靠。您的代码ec.element_to_be_clickable((BY.XPATH, css)看起来很可疑,但如果没有更多上下文,我们无法知道。定位器策略在这里讨论:seleniumhq.org/docs/… -
我会在下周二回复它,谢谢