gpt4 book ai didi

java - 如果两个值相同,则无法找到任一单选按钮

转载 作者:行者123 更新时间:2023-12-01 06:02:40 27 4
gpt4 key购买 nike

我是学习 Selenium 的新手,请帮助我找到单选按钮。

当我尝试单击单选按钮(静态或动态)时,我无法单击其中一个或那些 enter image description here我使用 Xpath 尝试了以下命令。但它们都不起作用

1.//input[@type='radio' and @value='on'][1]

2.//p[text()='静态']

尝试的命令:

driver.findElement(By.xpath("//input[@type='radio' and @value='on'][1]")).click();
driver.findElement(By.xpath("(//*[text()='Static'])[1]")).click();
driver.findElement(By.xpath("//p[text()='Static']")).click();

从开发者工具获取的单选按钮的 HTML 脚本:

<div class="Radio__radio___1xD3w" style="display: inline-block; margin-right: 36px; margin-top: 10px;"> ==$0
<input type="radio" class="Radio__radio-btn___E4u40" name="" value="on"><p class="Radio__radio-label___26Ok6">Static</p>
</div>
<div class="Radio__radio___1xD3w" style="display: inline-block; margin-top: 10px;">==$0
<input type="radio" class="Radio__radio-btn___E4u40" name="" value="on">
<p class="Radio__radio-label___26Ok6">Dynamic</p></div>

代码试验:

driver.findElement(By.xpath("(//*[text()='Static'])[1]")).click();
driver.findElement(By.xpath("//p[text()='Static']")).click();
driver.findElement(By.xpath("//input[@type='radio' and @value='on'][1]")).click();

最佳答案

由于与文本Static关联的单选按钮是一个动态元素,要在其上调用click(),您需要诱导>WebDriverWait,您可以使用以下解决方案:

  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//p[starts-with(@class,'Radio__radio-label___') and contains(., 'Static')]//preceding::input[1]"))).click();

关于java - 如果两个值相同,则无法找到任一单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54107295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com