2016-08-03 48 views
1

我正在嘗試使用name =「preferred_color」來獲取單選按鈕的數量。我總是得到count = 0.我做錯了什麼?在名稱爲「http://www.quackit.com/html/codes/html_radio_button.cfm」的頁面上有6個單選按鈕。爲什麼我總是將頁面中的單選按鈕計數爲零?

下面是代碼:

import java.util.List; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class RadioButtons { 

    public static void main(String[] args) throws Exception { 

     WebDriver driver = new FirefoxDriver(); 
     driver.navigate().to("http://www.quackit.com/html/codes/html_radio_button.cfm"); 

     Thread.sleep(4000); 

     List<WebElement> radio_button = driver.findElements(By.name("preferred_color")); 

     System.out.println(radio_button.size()); 

回答

1

在這種情況下,如果名稱也存在其他任何元素,嘗試使用cssSelector或XPath。在烏拉圭回合的HTML還存在的iframe,所以你需要切換到iframe的第一個象下面這樣:你需要告訴確切的元素定位,以獲得元素

List<WebElement> radio_button = driver.findElements(By.cssSelector(" form>input[name = 'preferred_color']")); 

driver.switchTo().frame(driver.findElement(By.cssSelector(".result[name = 'result1']"))); 

現在使用下面的代碼或元素。

U需要切換到另一個iframe以獲取另一個單選按鈕。

+0

現在我得到正確的結果。謝謝。 – Chuchoo

0

糾正我,如果我錯了,但我認爲webdriver不會搜索iframe。而在該頁面中,似乎每個單選按鈕都在iframe ...

導航到頁面後,嘗試做

driver.switchTo().frame("resutl1"); 

「resutl1」是第一iframe的名稱。

它會打印「3」。

相關問題