如果两个值相同,则无法找到任何一个单选按钮
Unable to locate either of the radio buttons if both values are same
我是学习 Selenium 的新手,请帮助我找到一个单选按钮。
当我尝试单击单选按钮(静态或动态)时,我无法单击任何一个或那些
我使用 Xpath 尝试了以下命令。但其中 none 有效
1.//input[@type='radio' and @value='on'][1]
2.//p[text()='Static']
尝试过的命令:
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;"> ==[=11=]
<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;">==[=11=]
<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()
induce 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();
我是学习 Selenium 的新手,请帮助我找到一个单选按钮。
当我尝试单击单选按钮(静态或动态)时,我无法单击任何一个或那些
1.//input[@type='radio' and @value='on'][1]
2.//p[text()='Static']
尝试过的命令:
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;"> ==[=11=]
<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;">==[=11=]
<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()
induce 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();