【发布时间】:2016-06-14 15:40:40
【问题描述】:
鉴于此 html:
<input id="test" value="my text" />
使用 xpath 很容易获得输入元素的句柄。比如:
input[@value="my text"]
但是如果原始 html 看起来像这样呢:
<input id="test" />
如果您在浏览器中查看,它仍然包含“我的文本” - 因为它已经添加了这样的 javascript:
document.getElementById('test').value = 'my text';
在小提琴中,您可以看到输入字段中包含单词“我的文本”,但没有值属性:https://jsfiddle.net/justinwyllie/5dsxa8mc/
如何选择这个元素?只是 xpath - 没有 jQuery。
【问题讨论】:
-
您不想使用
id定位元素的原因是什么?谢谢。 -
另一个小问题:您是否使用
selenium来定位元素? -
哈哈。是的。 Selenium Python 绑定。在我的实际情况下,没有 id。该元素由 React 生成。唯一的识别因素是价值属性。我们刚刚更新了 React,最新版本 (15.1.0) 似乎不再设置 value 属性。
-
Gotcha - 用 Python+Selenium 标记了问题并提供了 Python+Selenium 解决方案,希望你能接受。根据我的理解,你不能只用 xpath 来解决它。
-
你猜我在用 Selenium 应该会加分。