我在 C# 中使用 Selenium 和 Selenium RC 进行一些自动化交互测试,但遇到了一个绊脚石。
鉴于此 HTML:
<select id="my-select-list">
<option value="1">First option</option>
<option value="2">Second option</option>
<option value="3">Third option</option>
<option value="4">Fourth option</option>
</select>
我想测试以确保页面上存在“第三选项”选项。
以下所有测试均失败,即返回 false:
Selenium.IsElementPresent("//select/option[@label='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//select[contains(option, 'Third option')]")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")
它是 Selenium (RC / .NET) 的限制还是有另一种选择它的方法?
附言。我知道我可以使用选项的值进行测试,但这可能会改变,文本肯定不会。
编辑:PEBKAC 错误
对不起这是我的错。似乎 selenium 加载的站点与我认为加载的站点不同。
以下 XPath 查询都有效:
Selenium.IsElementPresent("//option[text()='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")