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();
我正在使用 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();