【问题标题】:Use selenium WebDriver to select radio button from text使用 selenium WebDriver 从文本中选择单选按钮
【发布时间】:2014-09-17 17:16:54
【问题描述】:

我们在旧页面上有一些写得很糟糕的单选按钮,如下所示:

<input id="button1" name="button" value="32" onchange="assignProduct(this.value);" type="radio"></input>
RADIO TEXT 1
<input id="button2" name="button" value="33" onchange="assignProduct(this.value);" type="radio"></input>
RADIO TEXT 2

有关信息,此显示与以下内容相同:

<input id="button" name="button" value="32" onchange="assignProduct(this.value);" type="radio">RADIO TEXT 1</input>
<input id="button" name="button" value="33" onchange="assignProduct(this.value);" type="radio">RADIO TEXT 2</input>

后面的代码更正确,允许通过文本“RADIO TEXT 2”选择输入按钮:

driver.findElement(By.xpath("(//input[contains(@text, 'RADIO TEXT 2')])")).click();

我可以使用什么代码在第一个代码示例中找到单选按钮,这是我实际必须处理的?

文本不再包含在元素中,因此 .xpath() 不匹配它。

我需要先找到文字,然后点击输入?我可以在不消耗和遍历整个页面的情况下执行此操作吗?

【问题讨论】:

    标签: html selenium radio-button webdriver


    【解决方案1】:

    使用XPath axes。在这种特殊情况下following-sibling。我设计了一个定位器来在这个页面上演示它。看看@bansalshah 的回答。让我们选择&lt;p&gt;,其中以下文本包含for eg。它有效,我已经检查过了:)

    .//*[@id='answer-25883774']//div[@class='post-text']/p[./following-sibling::*[contains(., 'for eg')]]

    因此,在您的情况下,要选择 RADIO TEXT 2 的输入,这应该类似于

    .//input[@type='radio'][./following-sibling::*[contains(., 'RADIO TEXT 2')]]

    【讨论】:

      【解决方案2】:

      对于第一个示例,您可以通过 ID 访问按钮:

      driver.findElement(By.id("button1")).click(); //first button
      

      driver.findElement(By.id("button2")).click(); //second button
      

      如果 Id 不够,您可以使用xpath,通过idvalue 访问它们:

      driver.findElement(By.xpath("//input[@id='button1'][@value='32']")).click(); //first button
      

      driver.findElement(By.xpath("//input[@id='button2'][@value='33']")).click(); //first button
      

      【讨论】:

      • @CharlieS 询问他是否能够根据以下文本而不是 id 或其他内容制作 XPath 定位器
      • 作为@AlexanderPetrovich cmets,我不一定知道id/值。在许多 html 生成引擎中,这些可能会随着每次构建而改变,但最终用户将看到的文本不太可能经常改变。
      【解决方案3】:

      从我可以看到的代码中,您可以使用文本映射值

      例如 value=32 用于单选文本 1 并从 xpath 中获取值

      如果 value =32 则选择单选按钮

      希望对你有帮助

      【讨论】:

      • 这没有回答问题。我不知道我想找到的值,我只知道下面的文字。如果我知道的话,我也可以按 id 选择。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多