2016-08-02 54 views
0

我試圖選擇框架內的下拉值。 This is the code如何使用java在webdriver中選擇框架內的下拉值

這就是我們如何寫一個鏈接與框架,但我無法從下拉式

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("right")); 
WebElement el1 = wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Text"))); 
el1.click(); 
+0

圖像中幀的名稱不是「正確」的,所以它可能沒有找到幀。並且與其中的「文本」沒有明顯的聯繫,所以這些代碼都不應該起作用。你得到的錯誤是什麼? –

回答

-1

值試試下面的代碼:

WebElement fr = driver.findElement(By.name("main_b")); 
    driver.switchTo().frame(fr); 
    WebElement dropdown = driver.findElement(By.name("field")); 
    Select sel = new Select(dropdown); 
    sel.selectByValue("<Value to be selected>"); 

您還可以使用等待命令如果你的網頁需要一些時間來加載。希望能幫助到你。

1
  • 首先,等待正確的幀(根據HTML代碼,該框架的名稱是main_b

  • 接下來,你不必有一個鏈接(<a>標籤),所以By.partialLinkText不能使用。使用By.name("field")代替

  • 最後,而不是點擊它來得到一個Select對象:Select mySelect = new Select(el1);和使用selectByVisibleTextselectByValueselectByIndex方法

所以一起看起來像這樣選擇它的一個選項:

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("main_b")); 

Select mySelect = new Select(
    wait.until(
     ExpectedConditions.elementToBeClickable(
      By.name("field") 
))); 

// Select second option by visible text 
mySelect.selectByVisibleText("Bacon Anna"); 

// Same option selected by value 
mySelect.selectByValue("16344"); 

// Same option selected by index 
new Select(el1).selectByIndex(1); 
相關問題