如何使用Selenium WebDriver检查是否选择了单选按钮?

时间:2014-04-29 11:01:04

标签: selenium selenium-webdriver webdriver

<div class="my_account_module_content">
<h3 class="my_account_module_content_title">
Mi Dirección 1
<br>
<span>Predeterminada</span>

<div class="selectCard_left">
<input id="17390233" class="default_shipping_address" type="radio" name="address" checked="true">
<span>Seleccionar como tarjeta predeterminada</span>
</div>

这是HTML代码

如果选中的单选按钮为true,则打印类跨度值? 请帮帮我..

1 个答案:

答案 0 :(得分:5)

在Java中,这样做:

if(driver.findElement(By.id("17390233")).isSelected()){
    System.out.println(driver.findElement(By.xpath("//input[@id='17390233']/following-sibling::span[1]")).getText());
}

如果选中单选按钮,则会显示文本。如果你想在某个地方使用这个文字,我建议你把它放在一个字符串中:

String spanText = driver.findElement(By.xpath("//input[@id='17390233']/following-sibling::span[1]")).getText();

希望这能回答你的问题。

编辑:以下是其他尝试方式的更新。

如果className default_shipping_address是唯一的(例如,未在页面上的任何其他位置使用),您可以尝试通过 className 定位元素:

if(driver.findElement(By.className("default_shipping_address")).isSelected()){
    System.out.println(driver.findElement(By.xpath("//input[@class='default_shipping_address']/following-sibling::span[1]")).getText());
}

如果该类不是唯一的,那么DIV的className selectCard_left可能是?

if(driver.findElement(By.className("selectCard_left"))){
    System.out.println(driver.findElement(By.xpath("//div[@class='selectCard_left']/span[1]")).getText());
}

如果classNames都不是唯一的,则需要完整的xpath表达式。如果您仍然无法获得该文本,请参阅阅读如何使用xpath:http://www.w3schools.com/XPath/xpath_syntax.asp

我希望您发现此信息有用。