selenium - 点击收音机
问题描述
我检查了其他类似的帖子,但他们无法帮助我。我刚开始使用 Selenium,但无法单击单选按钮。
这就是检查器中的内容。
input id="createCreds" name="addUser" aria-required="true" ng-model="formData.newUserType" ng-required="addNewUser.$submitted && !formData.newUserType" "="" class="ng-valid ng-valid-required ng-dirty ng-valid-parse ng-touched" aria-checked="true" aria-invalid="false" value="createCreds" type="radio"
这是我尝试过的
试验一:
WebElement userRadioBtn = driver.findElement(By.id("createCreds")); userRadioBtn.click();
试验 2:
driver.findElement(By.xpath("//*[@id="createCreds"]']")).click();
试验 3:
driver.findElement(By.id("createCreds")).click();
试验 4:
input[@value='createCreds']/following-sibling::label
我试图在 6 分钟左右复制这个人。 https://www.youtube.com/watch?v=BKbzW4S2qQ0
我希望找到类似 Click RadioButton css=#createCreds 或 xpath=//*[@id="createCreds"]
解决方案
根据您共享的HTML,单击单选按钮,因为该元素是一个Angular元素,您必须诱导WebDriverWait并且您可以使用以下任一选项,如下所示:
选择器:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-valid.ng-valid-required.ng-dirty.ng-valid-parse.ng-touched#createCreds"))).click();
路径:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-valid ng-valid-required ng-dirty ng-valid-parse ng-touched' and @id='createCreds']"))).click();
推荐阅读
- php - DirectAdmin mysql连接统一游戏问题
- r - 将循环结果存储在数据帧 R 中
- r - 如何更新 R 中的 SPSS 列标签?
- regex - Raku 正则表达式:如何知道哪个组被交替捕获
- wordpress - 奇怪的wordpress行为
- android - 如何使用 Kotlin 在 runOnUiThread 中附加到 Android
- android - Google fit 无法正确同步到 Android 应用
- python - Facebook Prophet add_regressor 没有帮助
- javascript - 谷歌分析点击事件跟踪使用 gtag 和条件/触发器?
- c - 如何使用在多个标头中声明的函数