2012-09-11 52 views
0

我使用C#與Internet Explorer 8爲什麼我不能使用Selenium選擇單選按鈕?按鈕高亮顯示的,但沒有選擇

我有一個單選按鈕下面的代碼:

wait.Until(ExpectedConditions.ElementExists(By.Id("optNoteReplace"))); 
driver.FindElement(By.Id("optNoteReplace")).Click(); 

當我通過代碼單步中,點擊命令被靜靜地執行,並且下一行被突出顯示。沒有錯誤,但單選按鈕未被選中。

在代碼行執行後,一個微弱的方塊出現在單選按鈕周圍。我認爲這證明選擇了正確的單選按鈕。

如果我改變代碼行來選擇另一個單選按鈕,方塊會從第一個按鈕中消失,然後再次出現在第二個按鈕的旁邊。

我將不勝感激任何幫助。

+0

我可以看到ID =「optNoteReplace」元素的代碼? –

+0

Vlad:我假設你的意思是HTML。如果沒有,請讓我知道:'' – OldGrantonian

+0

這個論壇和其他論壇上的一些海報非常慷慨地提供約20個不同的「等待」代碼。目前,我只想點擊一個單選按鈕。我對等待代碼沒有興趣。原因如下。我不是技術人員。我被要求每週只進行幾個小時的測試。執行速度不是問題。我使用帶有斷點的F5和F10運行C#Visual Studio Express IDE中的所有代碼。當發生錯誤時,違規行被高亮顯示爲黃色...(更多) – OldGrantonian

回答

0

請注意您嘗試使用哪個css選擇器或xPAth來定位單選按鈕。 我通常使用firepath(在ffox螢火蟲插件) firepath validation

,在Java中爲我工作:

@Test 
    public void radioButtonCheck(){ 
     driver.get("http://www.abw.by/index.php?act=finance"); 

     fluentWait(By.cssSelector("html body div table#main_tb tbody tr td#main_td01 div.block table tbody tr td noindex div div table tbody tr td div:first-child>input:first-child")).click(); 
    } 

public WebElement fluentWait(final By locator){ 
     Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) 
       .withTimeout(30, TimeUnit.SECONDS) 
//    .pollingEvery(5, TimeUnit.SECONDS) 
       .pollingEvery(1, TimeUnit.SECONDS) 
       .ignoring(NoSuchElementException.class); 

     WebElement foo = wait.until(
       new Function<WebDriver, WebElement>() { 
        public WebElement apply(WebDriver driver) { 
         return driver.findElement(locator); 
        } 
       } 
     ); 
     return foo;    }  ; 

也可以嘗試使用,而不是wait.Until流利的等待。閱讀流利等待一些另外的信息here

希望這有助於你)