为什么我不能使用Selenium选择单选按钮?按钮突出显示,但未选中

时间:2012-09-11 17:37:40

标签: selenium webdriver

我在Internet Explorer 8中使用C#。

我有一个单选按钮的代码:

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

当我单步执行代码时,将以静默方式执行Click命令,并突出显示下一行。没有错误,但未选中单选按钮。

执行代码行后,立即在单选按钮周围出现一个小的微弱方块。我认为这证明选择了正确的单选按钮。

如果我改变代码行以选择另一个单选按钮,则方形将从第一个按钮消失,并再次出现在第二个按钮周围。

如果有任何帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

注意css选择器或xPAth,您尝试使用它来定位radiobutton。 我通常使用firepath(ffox中的firebug插件) 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

的附加信息

希望这可以帮助你)