0

我正在尝试从此页面http://book.spicejet.com/的“离开”列表框中选择一个选项 Pune(PNQ)

driver.get("http://book.spicejet.com");
Thread.sleep(50000);
Select S = new Select(driver.findElement(By.id("ControlGroupSearchView_AvailabilitySearchInputSearchVieworiginStation1")));
S.selectByValue("PNQ");

但我收到此错误:

org.openqa.selenium.ElementNotVisibleException

我是 Selenium 的新手。请帮忙。

4

1 回答 1

1

直接来自硒源 -

/**
 * Thrown to indicate that although an element is present on the DOM, it is not visible, and so is
 * not able to be interacted with.
 */
public class ElementNotVisibleException...

正如它所说,该元素存在于 DOM 上,但不可见以进行操作。如果在该元素存在之前您必须采取先发制人的行动,那么就这样做。

一个例子是谷歌图片搜索。当您单击图像时,会出现一个带有图片的黑框。该元素始终存在,但您必须click在图像上才能使其出现。

听起来您的选择框也发生了同样的事情。

编辑

我冒昧地进一步查看了您的特定问题.. 看起来该站点隐藏了该<select>标签,因为它被一些 jQuery 东西填充。

不要使用选择标签并按值选择,而是这样做,

driver.findElement(By.id("ControlGroupSearchView_AvailabilitySearchInputSearchVieworiginStation1_CTXT").sendKeys("PNQ");
driver.findElement(By.cssSelector("a[value='PNQ']").click();

希望这可以帮助。

于 2013-09-25T19:54:31.350 回答