1

我在 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')]")
4

2 回答 2

2

我的 XPath 有点生锈了,但是你试过了吗……

Selenium.IsElementPresent("//option[text()='Third option']");
于 2009-08-05T02:26:54.053 回答
0

第 1 步:在下拉列表中获取所有选项

Select select = new Select(driver.findElement(By.id("my-select-list"))); 字符串 [] 选项 = select.getOptions();

第 2 步:检查天气特定选项(“第三选项”)出现在下拉菜单中。

for(字符串选项:选项)

{

if(!option.equals("第三个选项"))

失败;

别的

经过;

}

于 2014-04-04T07:41:26.857 回答