【问题标题】:How to check if radio button is selected or not using Selenium WebDriver?如何使用 Selenium WebDriver 检查是否选择了单选按钮?
【发布时间】:2014-06-15 06:42:05
【问题描述】:
<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 代码

如果选择的单选按钮为真,那么打印类跨度值? 请帮帮我..

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow!我已经格式化了您问题中的代码,以便它现在可以正确输出。尽管您的标记似乎无效 - 这是您页面中的标记,还是复制和粘贴错误?此外,请在您的问题中添加更多详细信息,了解您尝试过的内容以及之前尝试中出现的问题。人们很乐意提供帮助,但“请给我所有代码”的问题不会得到很好的回应。

标签: selenium selenium-webdriver webdriver


【解决方案1】:

在 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());
}

如果没有一个类名是唯一的,则需要一个完整的 xpath 表达式。如果您仍然无法获得该文本,我指的是阅读如何使用 xpath:http://www.w3schools.com/XPath/xpath_syntax.asp

希望这些信息对您有用。

【讨论】:

  • 您好,我收到错误无法定位元素:{"method":"id","selector":"17390233"}
  • 那么ID似乎是自动生成的并且每次都不同。课程 default_shipping_address 是否出现在页面上的其他任何位置?
  • 我们可以试试 if checked= true 然后打印类值吗? checked="true"> Seleccionar como tarjeta predeterminada
  • @user3538483 你可以这样做,但首先你需要找到元素。由于 id 是动态的,如果 default_shipping_address 是唯一的,您可以尝试按类进行。如果没有,您必须尝试使用​​ xpath 或 cssselector 来定位元素。一旦找到定位元素的方法,就可以使用上面的代码打印 span。
  • @user3538483 如果对您有帮助,请勾选此答案为已接受:-)
猜你喜欢
  • 2014-07-11
  • 2021-10-21
  • 2014-11-17
  • 1970-01-01
  • 2022-01-15
  • 2014-04-09
  • 2012-05-03
相关资源
最近更新 更多