坏:需要建议在selenium上使用单选按钮select.have三个单选按钮。需要选择合适的。但是得到错误

时间:2015-11-19 08:53:04

标签: java selenium button radio

我正在一个门户网站上工作,我们可以从三个单选按钮中选择凭证类型。它不起作用:我收到错误。

import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Vouchertest {

    public static void main(String[] args) {

        WebDriver driver=new FirefoxDriver();
            Logger log = Logger.getLogger("devpinoyLogger");
        driver.get("url");
            log.debug("entring username");
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.findElement(By.xpath("//*[@id='UserName']")).sendKeys("xoxo");
            log.debug("entering password");
        driver.findElement(By.xpath("//*[@id='Password']")).sendKeys("Password123");
            log.debug("Clicking login");
        driver.findElement(By.xpath("//*[@id='loginForm']/form/div[4]/div/input")).click();
        log.debug("Clicking voucher");
        driver.findElement(By.xpath("html/body/nav/div[2]/div[2]/ul/li[2]/a")).click();
        log.debug("Clicking create_voucher");
        driver.findElement(By.xpath("//*[@id='main']/a[1]")).click();
        **log.debug("Clicking voucher_type");
        driver.findElement(By.cssSelector("input[value='card']")).click();

    }

}

这是html代码:

<input id="VoucherType" type="radio" value="Corporate" name="VoucherType">
<label for="Corporate_Certificate">Corporate Certificate</label>
<input id="VoucherType" type="radio" value="Card" name="VoucherType">
<label for="Gift_Card">Gift Card</label>
<input id="VoucherType" type="radio" value="Adv" name="VoucherType">
<label for="Advanced_Payment">Advanced Payment</label>

这是跟踪:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"input[value='card']"}
Command duration or timeout: 30.12 seconds

2 个答案:

答案 0 :(得分:1)

我可以在你的css选择器中立即看到的一个问题是在html代码中你的值为(C是大写)但在定位器中你传递的值是简单的情况<强>卡

请试用以下定位器:

Css选择器:input[value='Card']

Xpath://input[@value='Card']

如果没有这个,请检查你是否在iframe中有这些单选按钮。如果是这样,你必须先切换到iframe。

答案 1 :(得分:1)

在您的HTML代码中,“Card”以大写字母开头,而在您的Java代码中,它的编写方式如下:“input [value ='card']”