Javascript 通过传递值处理夜视下拉列表

Javascript 通过传递值处理夜视下拉列表,javascript,node.js,selenium,automation,nightwatch.js,Javascript,Node.js,Selenium,Automation,Nightwatch.js,下面是我使用nightwatch从下拉列表中选择值的方法。正如您所见,这不是一个好方法。除非单击确切的元素,否则无法从下拉列表中选择特定的值 this.useXpath(); this.click('(//td[@class="styles_selectDropdownContainer__2Vrns"])[1]') this.useCss(); this.click('#react-select-6-option-1') 在Selenium

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

    this.useXpath();
    this.click('(//td[@class="styles_selectDropdownContainer__2Vrns"])[1]')
    this.useCss();
    this.click('#react-select-6-option-1')
在SeleniumJava中有一个非常好的选项,如下所示

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

    fruits.selectByVisibleText("Banana");
我想知道有没有一种类似的方法也可以用于夜视


这不是使用
Select
Option
标记建立的,因此内置的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();
  });
});

如果HTML有用于下拉列表的select和option,那么您可以使用Java-selenium代码,无论您共享了什么。但是HTML没有Select和options标记,即使在Java中这是一项很琐碎的工作。你能分享HTML代码以便更好地理解吗?@cruisepandey done。我在点击css时发现了这个错误。元素单击被拦截:元素。。。在点(672102)处不可单击。其他元素将收到单击: