Selenium Java - 如何 Select 没有 ID 的下拉元素

Selenium Java - How to Select a Dropdown Element that Has No ID

我正在使用 Selenium - Java WebDriver (ChromeDriver) 作为新用户。

在尝试使用 Java 从下拉菜单中 select 一个项目时,由于错误消息,我无法做到。请注意,我已经尝试了 Select 和 WebElement 选项的变体,但没有得到预期的结果:单击下拉菜单中的 link 应该会转到目标页面。

这是 eclipse 中显示的错误消息:

线程 "main" org.openqa.selenium.NoSuchElementException 中的异常:没有这样的元素:无法定位元素:{"method":"link text","selector":"Payment"}

这里是相关的代码段:

Select dropdown2 = new Select(webDriver.findElement(By.linkText("Payment")));
dropdown2.selectByVisibleText("Payment");

我也尝试了以下但没有成功:

WebElement element = webDriver.findElement(By.cssSelector("a[class='glyphicon glyphicon-credit-card']"));
element.click();

此外,以下代码无效:

WebElement element = webDriver.findElement(By.partialLinkText("Payment"));
Select mySelect= new Select(element);
mySelect.selectByVisibleText("Payment");

html的段如下所示:

希望得到反馈。

谢谢。

正如我在提供的屏幕截图 HTML 中看到的那样,这不是 <select> 元素,因此您不能在此处使用 Select() class 来处理落下。

您应该尝试使用带有 WebDriverWait 的简单查找器,如下所示:-

WebDriverWait wait = new WebDriverWait(driver,10);

//First click on dropdown down to open options
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("li.dropdown > a.dropdown-toggle"))).click();

//Now select opened option
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("ul.dropdown-menu > li > a[href*='Billing']"))).click();

wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Payment"))).click();

wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Payment"))).click();