【问题标题】:Dropdown no id and no name下拉没有 id 也没有名字
【发布时间】:2015-11-08 15:04:25
【问题描述】:

我写下拉代码。

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

【问题讨论】:

  • 请发布您的 HTML 代码并向我们展示您想要在那里选择的内容。那么请展示你已经尝试过但失败的方法。
  • 页面是gmail注册页面。我想选择性别和日期挂载下拉菜单
  • 但是两个下拉菜单都有一个 id,我不明白你为什么要选择一个没有 id 的下拉菜单???性别下拉列表 id="Gender" 和月份 id="BirthMonth" - 但这些元素不是经典意义上的选择元素,您可能需要单击它们然后选择您的选项
  • 这是我的课 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");这是我的代码,但不工作
  • @SelimErkan 有一个非常简单的解决方案 - 给它你自己的类...

标签: c# html selenium


【解决方案1】:

只需将您自己的类添加到 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>

不过,你的问题令人困惑……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多