下拉列表中没有id和名称

本文关键字:id 下拉列表 | 更新日期: 2023-09-27 18:08:09

我写下拉列表代码

if (elementtype == "Id")
    new SelectElement(driver.FindElement(By.Id(element))).SelectByText(value);
if (elementtype == "Name")
    new SelectElement(driver.FindElement(By.Name(element))).SelectByText(value);

但是我想选择一个没有id和名称的下拉菜单

<div aria-posinset="0" aria-setsize="3" role="option" id=":d" 
    class="goog-inline-block goog-flat-menu-button-caption">
    I am...
</div>
<div aria-hidden="true" class="goog-inline-block goog-flat-menu-button-dropdown">&nbsp;</div>

这是我写的类

public static void SelectDropDown(IWebDriver driver,string element,string value,string elementtype) { 
    // SelectElement selectElement = new SelectElement(); 
    if (elementtype == "Id") new     SelectElement(driver.FindElement(By.Id(element))).SelectByText(value); 
    if (elementtype == "Name") new     SelectElement(driver.FindElement(By.Name(element))).SelectByText(value); 
} 

,我这样使用它:

seleniumsetmethods.SelectDropDown(driver, "Gender", "Man", "Id")

我想选择月份和性别。https://accounts.google.com/signup?lp=1& hl = en

下拉列表中没有id和名称

只需将自己的类添加到HTML代码中,并通过Java/JavaScript引用它。去掉c#标签,因为它不是c#。

<div aria-posinset="0" aria-setsize="3" role="option" id=":d" 
class="goog-inline-block goog-flat-menu-button-caption gender-dropdown"> <-- custom class
I am...
</div>

同样,你有错误的月份下拉代码,它是:

<div class="goog-inline-block goog-flat-menu-button-caption month-dropdown"<- custom class id=":0" role="option" aria-setsize="12" aria-posinset="2">Month</div>

并且,假设您的Java代码可以工作,那么只需这样做:

if (elementtype == "Class")
new SelectElement(driver.FindElement(By.ClassName(element))).SelectByText(value);

老实说,JavaScript更简单…

<script>
    var gender = Document.getElementsByClassName('gender-dropdown')[0].innerHTML;
    var month = Document.getElementsByClassName('month-dropdown;)[0].innerHTML;
</script>