2011-04-28 73 views
8

我在做自動化測試使用硒,我需要關於如何選擇單選按鈕的幫助。如果可能的話,請幫我用硒代碼。硒代碼選擇單選按鈕

+0

怎麼回答你推廣Tnem工作提供?如果有,請小心接受? – 2012-12-10 12:41:40

回答

7

假設你有硒設置它只是:

selenium.click('radio button locator'); 

你可能想看看硒的javadoc http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/java/com/thoughtworks/selenium/Selenium.html

+4

提到的Selenium doc頁面是一個好的開始,但是對於定位器的更全面的參考,請參閱我的掛圖:[XPath,CSS,DOM和Selenium:Rosetta Stone和Cookbook](http://www.simple-talk.com /dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/) – 2011-04-29 17:22:27

0
public class radioExamJavaScr { 

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

    WebDriver driver = new FirefoxDriver(); 
    EventFiringWebDriver dr = new EventFiringWebDriver(driver); 
    dr.get("http://www.makemytrip.com/"); 
    dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

    ((JavascriptExecutor)dr).executeScript("document.getElementById('roundtrip_r').click();"); 

    WebElement one_way = (WebElement)((JavascriptExecutor)dr).executeScript("return document.getElementById('oneway_r') ;"); 

    System.out.println(one_way.isSelected()); 

    WebElement round_trip = (WebElement)((JavascriptExecutor)dr).executeScript("return document.getElementById('roundtrip_r') ;"); 

    System.out.println(round_trip.isSelected()); 

     } 
} 

在我與選擇單選按鈕,上面的例子中「往返「使用」JavaScript「。

最後四行用於驗證頁面中是否選擇了預期的單選按鈕。

注:我提供了簡單易用的解決方案來解決選定網頁中的問題(選擇收音機)。可以編寫更好的代碼。 (用戶可以編寫一個方法來接受無線電ID並循環所有現有的單選按鈕來查看其中哪一個被選中)。

+0

如果用戶無法選擇單選按鈕並通過「driver.findElement (「「) 「 方法。我知道少數情況下,「driver.findElement(」「)」及其操作無法完成預期的工作(既不選擇也不驗證)。 JavaScriptExecutor是任何測試者的第二選擇。 – MKod 2013-02-06 17:12:12

1
click > xpath=(//input[@type='checkbox'])[position()=1] 
click > xpath=(//input[@type='checkbox'])[position()=2] 
click > xpath=(//input[@type='checkbox'])[position()=3] 
click > xpath=(//input[@type='checkbox'])[position()=4] 

等等 使用這個命令來隨機選擇任何單選按鈕

0

我用這個方法:

String radioButtonId = "radioButtonId"; 
selenium.focus("id=" + radioButtonId); 
selenium.click("id=" + radioButtonId, "concreteRadioButtonValue"); 
0

你可以做的是這樣的:

創建一個帶有WebElement返回類型的方法,並使用Method findElement()。示例:

WebDriver test; 
test = new FirefoxDriver(); 

public static WebElement checkAndGet(By b) throws Exception { 
    return test.findElement(b); 
    } 

存儲WebElement並使用方法click()。例如:

WebElement radiobutton = checkAndGet(By.xpath("//span[@class='label ng-binding']"); 
radiobutton.click(); 

希望這有助於!

-1

你應該一直在做的是爲頁面中的每個對象提供一個定位器,然後使用一個方法。

driver.findElement(By.xpath(//CLASS[contains(., 'what you are looking for')])).click();

0

測試場景:選擇性別(女)單選按鈕 步驟:

  1. 啓動新的瀏覽器
  2. 打開URL http://toolsqa.wpengine.com/automation-practice-form/

  3. 選擇收音機按鈕(女)的價值「女」

代碼: 公共靜態無效的主要(字串[] args)拋出InterruptedException的{

System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); // Step 1 - Launch Browser 
    driver.get("http://toolsqa.com/automation-practice-form"); // Step 2 - Open Test URL 
    List<WebElement> rdBtn_Sex = driver.findElements(By.name("sex")); // 
    int size = rdBtn_Sex.size(); 
    System.out.println("Total no of radio button :"+size); 
    for (int i=0; i< size; i++) 
    { 
     String sValue = rdBtn_Sex.get(i).getAttribute("value"); // Step 3 - 3. Select the Radio button (female) by Value ‘Female’ 
     System.out.println("Radio button Name "+sValue); 
     if (sValue.equalsIgnoreCase("Female")) 
     { 
      rdBtn_Sex.get(i).click(); 

     } 
    }