我写下拉代码。
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 和 name 的下拉列表
<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")
最佳答案
只需将您自己的类添加到 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>
虽然你的问题令人困惑......
关于c# - 下拉没有 id 也没有名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025619/