我使用Selenium-JavaWebDriver(ChromeDriver)作为新用户。
当尝试使用Java从下拉框中选择一个项目时,由于错误消息,我无法做到这一点。请注意,我已经尝试了Select和WebElement选项的变体,但没有得到预期的结果:单击下拉菜单中应该将我带到目标页面的链接。
这是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的片段如下所示:
希望得到反馈。
谢谢你。
正如我在提供的屏幕截图超文本标记语言中看到的,这不是
您应该尝试将简单的finder与WebDriver等
一起使用,如下所示:-
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();