【发布时间】:2017-07-05 13:27:54
【问题描述】:
我有一个 Selenium Webdriver 测试,我想等待文本输入字段包含特定值,然后再进行下一步。我知道价值是什么(“奥库拉镇”),它是由 JavaScript 设置的。我尝试使用以下 c# 代码:
new WebDriverWait(Driver, TimeSpan.FromSeconds(timeout))
.Until(ExpectedConditions.TextToBePresentInElement(DpNumber, "Town of Oakura"));
这只是每次都超时。所以我想我会尝试 XPath 来等待该字段被更新:
new WebDriverWait(Driver, TimeSpan.FromSeconds(timeout))
.Until(ExpectedConditions.ElementExists(By.XPath("//input[@id='DP_NUMBER'
and text()='Town of Oakura']")));
这也不起作用。在 Chrome 中使用控制台我可以使用 XPath 来识别元素,定义为:
<input id="DP_NUMBER" type="text" name="DP_NUMBER"
data-bind="textInput:DP_NUMBER" class="js-bound">
扩展元素我可以确定value 是正确的。但我找不到任何 XPath 排列,它可以根据元素的内容定位元素。
【问题讨论】:
-
您看到的错误是什么?您可以考虑更新问题区域中的错误堆栈跟踪吗?谢谢
-
它只是超时 - 它永远不会根据内容解析元素。
标签: c# selenium xpath selenium-webdriver