[英]How to select a list item from a drop down by its value using Selenium Webdriver C#
I want to select a drop down value. 我想选择一个下拉值。 The problem is the drop down list is derived, it is written as list items.
问题是下拉列表是派生的,它被写为列表项。 Code snippet as follows:
代码片段如下:
<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>
How do I select 'Option 2' as the selected value in the drop down? 如何在下拉菜单中选择“选项2”作为所选值?
using CSS Selectors in Selenium: 在Selenium中使用CSS选择器:
you can get value of nth child by finding it with CSS Selector. 您可以通过使用CSS选择器找到第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)"));
In case of when <li>
items are dynamic, then get count and loop over and get all the values. 如果
<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)"));
}
Finding element by Text (value) 按文本查找元素(值)
Easier way would be finding by xPath and Class 更简单的方法是通过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"
for more -Example code 更多- 示例代码
try (only if ul
is treated as dropdown): 试试(仅当
ul
被视为下拉菜单时):
SelectElement selectElement = new SelectElement(driver.FindElement(By.cssSelector(".rcbList")));
selectElement.SelectByText("Option 2");
Reference: 参考:
https://stackoverflow.com/a/31072586/2575259 https://stackoverflow.com/a/31072586/2575259
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.