2012-08-22 75 views
0

是否有一個技巧一個接一個地使用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

如果元素位於不同的框架上,則必須切換回默認框架,然後再返回。

喜歡的東西:

driver.switchTo().defaultContent(); 

原因是因爲一旦你切換到一個框架,如果您切換到另一個框架,搜索將只有孩子的幀到原始幀。所以你必須切換回頂部框架,然後再退回。

相關問題