【问题标题】:Appium Java: checkbox element is never clicked iOSAppium Java:从不点击复选框元素iOS
【发布时间】:2019-03-21 21:14:43
【问题描述】:

我正在尝试检查元素但从未被点击

WebElement checkBox = driver.findElementByXPath("//XCUIElementTypeOther[@name=\"checkTerms\"]");

System.out.println(checkBox.getAttribute("enabled"));

checkBox.click();

它打印为 true,但没有任何反应

Appium 1.11.1

appium java-client 7.0.0

硒-java 3.141.59

我正在使用这个 pod https://cocoapods.org/pods/M13Checkbox 来显示复选框

如果我点击右侧面板中的点击,它会按预期工作。

编辑:我必须在填写用户/密码后单击它,并且在密码(它是数字键盘)获得 WebDriverException 后我无法隐藏键盘,但它会在用户文本字段之后隐藏它一次。

Edit2:无论显示键盘,复选框都不会被点击。

感谢您的帮助。

【问题讨论】:

  • 你遇到了什么错误?
  • 我没有任何错误,但是当我检查启用了 appium 桌面的元素时始终为 true,并且我没有看到任何“已检查”属性
  • 当您单击/点击元素时,启用的属性不会改变。当您单击查看器上的点击按钮时,其他属性会发生什么情况?它们中的任何一个会改变价值吗?通常,我会检查值属性,但从您的屏幕截图中不清楚是否要这样做。我使用的是 Android,而不是 IOS,所以我的看起来有点不同。
  • 您可以使用 appium 桌面检查器单击它吗?选择元素并尝试在 appium 桌面检查器中单击 tap 按钮。
  • @SubanDhyako 我可以在 appium 桌面上点击它,我可以记录给我的点击动作 -- MobileElement el1 = (MobileElement) driver.findElementByAccessibilityId("checkTerms"); el1.click(); - 但从不处理代码。 appium server 1.11.1 桌面 1.10.0 账单没有任何变化,属性值永远不会显示在桌面中,我无法通过代码得到它

标签: selenium appium xcuitest


【解决方案1】:

你试过了吗?

Actions action = new Actions(driver);
action.moveTo(checkbox);
action.click();
action.perform();

【讨论】:

  • 它也不起作用,我不明白为什么......也许是因为复选框来自 pod cocoapods.org/pods/M13Checkbox
  • 你可以添加System.out.println(checkBox.getAttribute("name")); 只是想确保你指向正确的元素
  • 打印“checkTerms”
  • 好的。再检查 1 次。 MobileElement element = (MobileElement) driver.findElementByXPath("//XCUIElementTypeOther[@name=\"checkTerms\"]"); boolean isSelected = element.isSelected();,试试这个,看看结果如何。
  • 抱歉,试试这个tap 选项。 Point checkLocation = checkbox.getLocation(); driver.tap(1, checkLocation.getX()+10, checkLocation.getY()+10, 1);
【解决方案2】:

我终于解决了它向下滚动到复选框的下一个元素。由于某种原因,即使它出现在屏幕上,视图也无法点击该元素,因此它可以向下滚动到密码文本字段,然后单击复选框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2017-01-10
    • 2019-09-22
    相关资源
    最近更新 更多