簡體   English   中英

如何使用Selenium Webdriver C#從下拉列表中選擇列表項的值

[英]How to select a list item from a drop down by its value using Selenium Webdriver C#

我想選擇一個下拉值。 問題是下拉列表是派生的,它被寫為列表項。 代碼片段如下:

<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>

如何在下拉菜單中選擇“選項2”作為所選值?

在Selenium中使用CSS選擇器:

您可以通過使用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)"));

如果<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"

更多- 示例代碼

試試(僅當ul被視為下拉菜單時):

SelectElement selectElement = new SelectElement(driver.FindElement(By.cssSelector(".rcbList")));
selectElement.SelectByText("Option 2");

參考:

https://stackoverflow.com/a/31072586/2575259

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM