javascript - Selenium - 如果下拉值已经存在,如何检查和增加下拉值?

标签 javascript java selenium selenium-webdriver automation

我正在尝试使用 Selenium Webdriver (Java) 自动化应用程序。我的网络应用程序有一个“添加”按钮。单击添加按钮后,将启用下拉菜单。如果再次单击,将启用第二个下拉菜单。每个后续下拉列表的 ID 将为 page1、page2、page3.. 等等。

我想要做的是,当我打开页面时,我需要查明页面中是否已存在任何下拉列表,如果是,则选择下一个下拉列表值,然后从下拉列表中选择一个值。

这是我当前的代码,我手动选择每个下拉列表并选择它们各自的值。:

driver.findElement(By.id("addPage")).click();
new Select(driver.findElement(By.id("page0"))).selectByVisibleText("ABCD");
driver.findElement(By.id("addPage")).click();
Thread.sleep(1000);
new Select(driver.findElement(By.id("page1"))).selectByVisibleText("CDEF");
driver.findElement(By.id("addPage")).click();
Thread.sleep(1000);
new Select(driver.findElement(By.id("page2"))).selectByVisibleText("EFGH");
driver.findElement(By.id("addContact")).click();

最佳答案

我会尝试按照以下方式做一些事情,假设页面中没有其他下拉元素(我从你的问题中假设是这种情况)。

try {
driver.findElement(By.tagName("select"))
} catch (NoSuchElementException e) {
//create first dropdown
}

您可以尝试用页面上每个选择元素的 id 填充一个数组,并搜索是否存在与模式“page\d”匹配的元素,然后从那里开始。

关于javascript - Selenium - 如果下拉值已经存在,如何检查和增加下拉值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31725417/

相关文章:

javascript - 根据窗口宽度添加标题类

javascript - 为什么ajax调用url以#结尾?

javascript - 为选项卡的其余部分着色

java - JSF 不解释接缝

java - 使用 JPAMetaModelEntityProcessor 的优势?

java - 如何使用Chrome浏览器处理 "StaleElementReferenceException"

python - selenium + nose 并行测试

vba - Selenium VBA 代码在浏览器中粘贴数据

javascript - 解决 css3 div 动画问题

java - oracle中如何自动调整ID值(主键)?