Selenium:使用相同的xpath处理多个输入

时间:2011-11-25 17:35:34

标签: selenium-rc

我正在测试一个网站,用户可以选择将输入字段更改为Textbox和Dropdown。无论用户将其更改为下拉列表还是文本框,输入字段的xpath都是相同的。所以,我不知道如何为这种情况编写测试步骤。

我想做点什么:

if (dropdown present)
{
   Selenium.Select("dropdown xpath", "option");
}

else if (textbox present)
{
   Selenium.Type("texbox xpath", "option");
}

任何人都可以帮帮我吗?在Selenium中是否有办法检查输入是否为“text”类型?

2 个答案:

答案 0 :(得分:1)

您可以使用selenium.isElementPresent(locator)构造中包含的if (..)来检查是否存在元素,并相应地执行操作。

答案 1 :(得分:1)

我没有在selenium中看到一个简单的属性,但你可以通过调用javascript来获得它:

IWebElement element = ...

string tagName =((IJavaScriptExecutor)webDriver).ExecuteScript(“return arguments [0] .tagName”,element).ToString();

另一种方法是创建2个仅适用于其中一个的x路径,并尝试在try / catch中查找文本框。如果它遇到了捕获,那么请搜索下拉列表。