我使用selenium-RC
进行自动化java
(Eclipse Kepler)。我在option
中选择drop down list
时遇到了一些问题,select
中的span
标记不在mouse click
。
我想测试一个页面,其中有一个用于选择城市名称的下拉列表。下拉列表只有在我给出一些价值时才出现,例如“班加罗尔”我必须输入“禁令”,然后显示下拉菜单,然后我选择班加罗尔城市“down-arrow and enter key
”或“JavaScript functions
” {1}}“但是当我运行我的selenium rc脚本时,在键入”禁止“后它会失败,下拉列表不会出现。我尝试在select命令中使用xpath和id,单击命令。我被困在这里请有人帮我解决这个问题。我认为它是动态的,基于w.click("//*[@id='homedeliveryform']/div[1]/span/a/span[1]");
w.click("//*[@id='ui-active-menuitem']");
。还有一个..接下来的两个下拉取决于第一个下拉(即第二个)第三个下拉列表被隐藏,第一个下拉列表显示为_default。)
我正在发送我正在尝试测试脚本的页面链接:https://pizzaonline.dominos.co.in
我尝试使用以下命令: -
1:
w.type("//*[@id='homedeliveryform']/div[1]/span/input","ban");
w.click("//*[@id='ui-active-menuitem']");
2:
w.select(" id=combobox", "value=BANGALORE");
3:
w.type(" id=combobox", "value=BANGALORE");
4:
{{1}}
答案 0 :(得分:0)
我遇到了类似的问题。这就是我解决它的方法:
在组合框中找到箭头按钮并单击它,将出现下拉列表。
下拉列表与组合框没有任何关系,它是一个单独的列表,只显示在正确的位置,因此看起来它属于组合框。下拉列表实际上是一个<ul>
- 元素,似乎不太容易找到。无论如何,有许多<li>
- 元素<a>
- 元素,其中包含文本。
答案 1 :(得分:0)
我可以看到你试图从下拉列表中选择一个webelement(班加罗尔),直到你点击它为止。以下是您选择隐藏网页元素的方法。
第一种方式:使用相同的js单击任何元素不是问题。如您所知,如何获取任何选项,最后的操作是执行单击。这应该适合你:
WebElement hiddenWebElement =driver.findElement(By(..selector of the element....));
((JavascriptExecutor)driver).executeScript("arguments[0].click()",hiddenWebElement);
第二路:
String cssSelector= ...//i gave them in your previous question
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssSelector+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
第三种方式:使用操作构建器,高级用户操作API。你可以在这里阅读它并且代码会像那样:
WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();
答案 2 :(得分:0)
w.keyPressNative(String.valueOf(KeyEvent.VK_B));
w.keyPressNative(String.valueOf(KeyEvent.VK_A));
w.keyPressNative(String.valueOf(KeyEvent.VK_N));
w.keyPressNative("40"); // down arrow key
Thread.sleep(4000);
w.keyPressNative("10"); //Enter key
答案 3 :(得分:-4)
在下面的场景中,我所做的是......(dropdwon在表中)
根据单元格值单击所需的值。
driver.findElement(By.id("ms__id3")).click();
WebElement table = driver.findElement(By.className("combo-list-table"));
allRows = table.findElements(By.tagName("tr"));
for (WebElement row : allRows)
{
cells = row.findElements(By.tagName("td"));
for (WebElement cell : cells)
{
if(cell.getAttribute("text").equalsIgnoreCase("Business"))
{
cell.click();
}
}
}
希望这会有所帮助...... :)