webdriver查找但不访问元素

时间:2012-08-22 14:26:49

标签: java webdriver selenium-webdriver

是否有使用java webdriver一个接一个地选择页面元素的技巧?我正在尝试在iframe内部的表单中设置值。

我首先切换iframe,然后可以访问并更改第一个下拉列表中的值。我可以从其他页面创建一个WebElement,但我根本无法与它们进行交互。

下面的代码允许我更改第一个下拉列表的值。

driver.switchTo().frame(0)

WebElement fromList = driver.findElement(By.id("foo"));
r.selectItemByText(fromList, "var");

之后我无法访问任何元素。我可以毫无错误地找到它们,但我不能对它们做任何事情,因为它说它们没有数据。

WebElement fromList = driver.findElement(By.id("bar"));
r.selectItemByText(fromList, "foo");**

第二行返回此错误:

NoSuchElementException: Cannot locate element with value 'foo'

如果我删除它,我没有错误,所以代码看到的元素不是它的值。

1 个答案:

答案 0 :(得分:1)

如果元素位于不同的帧上,则必须切换回默认帧,然后再次返回。

类似的东西:

driver.switchTo().defaultContent();

原因是因为一旦切换到某个帧,如果切换到另一个帧,搜索将只是该原始帧的子帧。因此,您必须切换回顶部框架,然后再次返回。