2012-09-11 57 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

希望这有助于你)