java - 无法使用 java 在 Selenium Webdriver 中选择复选框
问题描述
我正在尝试选择一个复选框,但我无法也没有在其他线程中找到任何解决方案。
代码:@FindBy(css="input.ng-valid.ng-dirty.ng-touched") WebElement chrgAllocFee;
chrgAllocFee.click();
但是当我以相同的方式定义和使用其他复选框时,它不起作用。我发现与其他人相比的不同之处在于,这里的 html 代码有额外的一行
请建议如何定义以便可以识别它。
错误获取: org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“input.ng-valid.ng-dirty.ng-touched”} (会话信息:chrome=69.0.3497.92)
解决方案
所需的元素是Angular元素,因此您必须诱导WebDriverWait元素可点击,您可以使用以下任一解决方案:
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-valid.ng-dirty.ng-touched[name='ChargeAllocationFee']"))).click();
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-valid ng-dirty ng-touched' and @name='ChargeAllocationFee']"))).click();
推荐阅读
- powerbi - Power BI - “Expression.Error:找不到表的列
- pycharm - 如何在pycharm中永久禁用块插入符
- javascript - 如何使用 return $.post - undefined 不是一个对象(评估'function().then')
- asp.net - 如何在 asp.net jquery(ajax) 应用程序中避免 ISPOSTBACK?
- google-bigquery - 对于 BigQuery JS UDF,有没有更简单的方法可以将 wasm 文件加载到用户定义的函数中?
- php - Symfony 3 使用它们的 URL 处理多种语言
- reactjs - 列表无法查看数组的更新状态
- c# - 检查 HUGE 字典是否包含字符串并获取与元素匹配的所有元素
- api - 我写了一个计算斐波那契第 n 项的 javascript 代码,我如何在 Postman 中使用它
- node.js - 如何从多个函数中获取多个返回并在节点js中发送响应