下拉列表中没有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"> </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
只需将自己的类添加到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>