【问题标题】:Selecting one value from the dropdown从下拉列表中选择一个值
【发布时间】:2016-12-01 06:35:28
【问题描述】:

我正在尝试从下拉列表中选择一个值,但我的脚本一直失败。我选择的值来自以“Manager”为值的 Excel 文档。

这是我的 xparth

这是我的控制台

我尝试了不同的解决方案,但没有运气。下面的代码是我正在尝试产生错误的代码。

Select select = new Select(driver.findElement(By.xpath("//*[@id='main']/div/div[2]/form/div[2]/div[7]/div/div[1]/div[1]")));
             select.deselectAll();
             select.selectByVisibleText(AGR);

感谢您的帮助。

【问题讨论】:

  • 这不是一个传统的下拉菜单,其中 select 标签包含选项标签,但其他 div 标签中的值。您必须编写代码才能打开容器并选择所需的选项。
  • @Grasshopper 我该怎么做。任何可能有的例子都是有用的。谢谢你。自动化领域的新事物
  • 找到包含占位符文本“请选择”的输入元素。单击此元素的代码。应该会出现一个下拉菜单。这包含在具有“selectize-dropdown form-control single”类的 div 中。您应该使用隐式等待来等待此 div 的可见性。最后找到您要选择的选项,该选项位于具有“selectize-dropdown-content”类的 div 中,使用您要选择的文本作为带有 xpath 的定位器策略 (text(),'blah blah')。然后点击这个元素。如果我是正确的,应该可以工作。
  • 使显式等待不是隐式的...使用 ExpectedCondition visibilityOf()

标签: excel eclipse google-chrome selenium-webdriver


【解决方案1】:

代码应该是 select.selectByVisisbleText("Manager")。不接受部分文本。应输入完整的文本。

【讨论】:

    【解决方案2】:

    我终于找到了解决问题的方法。我所要做的就是从 excel 文档中找到 xPath 并发送键,然后单击键盘上的 Enter。这意味着我可以更改 excel 文档下拉列表中的名称,而不是在代码上硬编码。

    WebElement webElement = driver.findElement(By.xpath("//*[@id='main']/div/div[2]/form/div[2]/div[7]/div/div[1]/div[1]/input"));//You can use xpath, ID or name whatever you like
                 driver.findElement(By.xpath("//*[@id='main']/div/div[2]/form/div[2]/div[7]/div/div[1]/div[1]/input")).sendKeys(AGR);
                 webElement.sendKeys(Keys.ENTER);
    

    希望我的解决方案可以帮助遇到同样问题的任何人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2018-12-16
      • 2020-08-20
      相关资源
      最近更新 更多