Java 无法从组合框中选择值。需要JS替代方案

Java 无法从组合框中选择值。需要JS替代方案,java,selenium-webdriver,Java,Selenium Webdriver,我在我们的项目中有一个组合框,我为它编写了XPATH。虽然XPATH检查器在编写XPATH时能够正确地定位它,但是当我运行测试时,它没有执行选择值的操作。我尝试了多个XPath,但似乎没有任何效果 下面是它的HTML设计 <select class="" style="margin-bottom:5px; width:150px; font-size:12px;" name="statusDetail868"> <option value="0">AP

我在我们的项目中有一个组合框,我为它编写了XPATH。虽然XPATH检查器在编写XPATH时能够正确地定位它,但是当我运行测试时,它没有执行选择值的操作。我尝试了多个XPath,但似乎没有任何效果

下面是它的HTML设计

   <select class="" style="margin-bottom:5px; width:150px; font-size:12px;"     name="statusDetail868">
   <option value="0">APPROVED</option>
   <option selected="selected" value="2">PENDING</option>
   <option value="3">REJECTED</option>
   </select>
没有成功

我正在考虑加入Javascript。我试过这个

js.executeScript("document.getElementsByClassName('').options[2].selected=true");
这给了我错误 “org.openqa.selenium.WebDriverException:document.getElementsByClassName(…)。选项未定义”

什么是javascript,因为它没有“ID”,只有类名?

正如Arran所说,“您的问题中的CSS选择器是XPath选择器”,那么实际使用XPath选择器如何


driver.findElement(By.xpath(///select[name='statusDetail798']/option[text()='APPROVED'])。单击()

可能只是有问题的输入错误,但名称是“statusDetail868”,而xpath包含“statusDetail798”。显然,使用不同的name@Jk1明白你的意思了。我没有注意到。但是你能告诉我从组合框中选择一个值的JS等价物吗,特别是当我们没有ID的时候?好吧,这里你完全搞错了。问题中的CSS选择器是XPath选择器。你到底在做什么?我已经解决了。我没有检查statusDetail798是否正在动态更改。我写了下面的xpath//td[@class='contact']/child::select[contains(@name,'statusDetail')],您能给JS提供一个替代方案吗it@crazynik我认为您仍然可以在xpath的末尾添加
/option[text()='APPROVED']
来选择选项(单击()。我不明白你为什么需要JS替代品
js.executeScript("document.getElementsByClassName('').options[2].selected=true");