如何在Appium的TextView中单击文本链接

时间:2018-09-10 11:02:49

标签: java automated-tests appium uiautomator appium-android

如何在appium的textview中单击文本链接

例如我有一个字符串,没有帐户? Register

只有“注册”具有链接,其他文本被禁用,当我单击“注册”时,导航到“注册”屏幕。

但是我无法点击注册。

参考图片 enter image description here

3 个答案:

答案 0 :(得分:0)

WebElement element = driver.findElement(By.id("element id here"));
Point point = element.getLocation();

//you can change follwing point based on your link location
int x = point.x +1;  
int y = point.y + element.getSize().getHeight() - 1;

new TouchAction(driver).tap(x, y).perform();

我找到了此解决方案here in appium discussion

答案 1 :(得分:0)

我通常会在测试中尽量避免使用XPATH,因此我正在按文本搜索Elements,我正在做类似的事情,这将返回一个By元素以用于webdriver交互。

public static By byText(final String text)
{
    switch (Configuration.getInstance().getPlatform())
    {
        case ANDROID:
            // This requires a UiAutomator2 test driver:
            return MobileBy.AndroidUIAutomator("new UiSelector().text(\"" + text + "\")");
        case IOS:
        default:
            throw new RuntimeException("not implemented");
    }
}

不幸的是,我暂时还不知道与iOS相当的东西,但是应该也可以实现;)

答案 2 :(得分:0)

使用此简单代码

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);