我使用Selenium - Java WebDriver(ChromeDriver)作为新用户。
尝试使用Java从下拉菜单中选择项目时,由于错误消息,我无法执行此操作。请注意,我尝试过选择和WebElement选项的变体,但没有预期的结果:点击下拉菜单中的链接,该链接应该带我到目标页面。
以下是eclipse中显示的错误消息:
线程中的异常" main" org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"方法":"链接文本","选择器":"付款"}
以下是相关的代码段:
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的片段如下所示:
希望得到反馈。
谢谢。
答案 0 :(得分:0)
正如我在提供的屏幕截图HTML中看到的那样,这不是<select>
元素,因此您无法在此处使用Select()
类来处理下拉列表。
您应该尝试使用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();