我想选择一个下拉值。问题是派生下拉列表,它被写为列表项。代码段如下:
<div class="rcbScroll" style="width: 100%; height: 184px; overflow: auto;">
<ul class="rcbList" style="width: 100%">
<li class="rcbItem">Option 1</li>
<li class="rcbItem">Option 2</li>
<li class="rcbItem">Option 3</li>
</ul>
如何选择&#39;选项2&#39;作为下拉列表中的选定值?
答案 0 :(得分:2)
在Selenium中使用CSS选择器:
你可以通过CSS Selector找到第n个孩子的价值。
// first child: will return "Option 1"
driver.findElement(By.cssSelector("ul.rcbList > li:nth-child(1)"));
// second child: will return "Option 2"
driver.findElement(By.cssSelector("ul.rcbList > li:nth-child(2)"));
// nth child: will return "Option n"
driver.findElement(By.cssSelector("ul.rcbList > li:nth-child(n)"));
如果<li>
项是动态的,那么获取计数并循环并获取所有值。
var el_count = driver.FindElements(By.CssSelector("ul.rcbList"));
for(int index=0; index < el_count.count(); index++){
// 0 (zero) is the first element in <ul> DOM Array
driver.findElement(By.cssSelector("ul > li:nth-child(index)"));
}
按文字搜寻元素(值)
更简单的方法是通过xPath和Class
找到var title = driver.FindElement(By.XPath("./div[@class='aCont']/div/a/span[text() = 'TextToFind']"));
// now title contains text, title = "text to be find"
了解更多-Example code
答案 1 :(得分:0)
尝试(仅当ul
被视为下拉列表时):
SelectElement selectElement = new SelectElement(driver.FindElement(By.cssSelector(".rcbList")));
selectElement.SelectByText("Option 2");
参考: