java - 自定义 XPATH 以单击复选框元素
问题描述
希望有人可以指导我点击“活动”复选框的正确方向,问题是应用程序默认选中“活动”,因此过滤器下拉菜单存储“活动”选项,因此我的 xpath 看到两个“活动”并单击第一个是落下。
driver.findElement(By.xpath("//span[contains(text(),'Active')]")).click();
当我使用上面的代码时,同时存在两个元素,因此单击了下拉菜单,而不是实际取消选中“活动”复选框。希望这能让你清楚。
解决方案
除了使用contains()进行部分文本匹配之外,您还可以使用精确文本匹配,并且可以使用以下Locator Strategies:
主动:
driver.findElement(By.xpath("//span[text()='Active']")).click();
非活动:
driver.findElement(By.xpath("//span[text()='Inactive']")).click();
但是,由于该元素是React Native元素,因此click()
您需要在该元素上诱导WebDriverWait并且elementToBeClickable()
您可以使用以下任一Locator Strategies:
主动:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Active']"))).click();
非活动:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Inactive']"))).click();
推荐阅读
- python - Python DataFrame 的转换
- java - Quorum-Web3j raftGetCluster() 无法获得结果
- amazon-web-services - 如何在不影响数据库资源运行的情况下升级 terraform 和 provider 版本?
- asp.net - 有“远程服务器返回意外响应:(413) 请求实体太大。”
- javascript - 延迟加载 JSTREE
- python - 如果在字典列表中找不到键,如何传递空字符串
- schema - 如何在 Shopify 的版块页面上调用产品图片、详细信息和价格?
- ios - 'sonar.coverage.jacoco.xmlReportPaths' 没有为 SonarQube 开发者版中的 swift 项目定义
- html - { 和 } 在 CSS 不同方向上的含义是什么?
- python - Python 生成 IAM 身份验证令牌 boto3.session