【问题标题】:Nightwatch dropdowns handling by passing value通过传递值处理 Nightwatch 下拉列表
【发布时间】:2021-08-12 11:30:57
【问题描述】:

以下是我用来使用 nightwatch 从下拉列表中选择值的方法。如您所见,这不是一个好方法。除非我们单击确切的元素,否则我们无法从下拉列表中选择特定值。

    this.useXpath();
    this.click('(//td[@class="styles_selectDropdownContainer__2Vrns"])[1]')
    this.useCss();
    this.click('#react-select-6-option-1')

在 selenium java 中有一个很好的选择,如下所示

    Select fruits = new Select(driver.findElement(By.id("fruits")));

    fruits.selectByVisibleText("Banana");

我想知道有没有类似的方法也可以用在守夜人中?

【问题讨论】:

  • 如果 HTML 有下拉选择和选项,那么您可以使用您共享的 Java -selenium 代码。但是 HTML 没有 Select 和 options 标签,即使这样在 Java 中完成也是一项微不足道的工作
  • 你能分享一下HTML代码以便更好地理解吗?
  • @cruisepandey 完成。

标签: javascript node.js selenium automation nightwatch.js


【解决方案1】:

这不是使用SelectOption 标签构建的,因此内置的 selenium 函数不起作用。解决方法是首先单击父跨度,然后在列表中存储每个 div(这是选项),迭代循环,如果文本与您想要的文本匹配,则可以单击每个 Web 元素。

代码:

 this.useCss();
 this.click("span[aria-live='polite']")

现在将选项存储在列表中:

var elements = document.querySelectorAll('.elements'); // use 
//div[contains(@class,'option')] as element selector.

现在迭代列表:

// Iterate over them.
  [].forEach.call(elements, function (element) {

    // Manipulate each element.
    element.click();
  });
});

【讨论】:

  • 点击 css 时出现此错误。元素点击被拦截:元素 ... 在点 (672, 102) 不可点击。其他元素会收到点击:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多