无法单击Div类中定义的元素

时间:2019-08-16 04:52:28

标签: android selenium-webdriver

我正在尝试使用Eclipse自动化移动应用程序测试。但是,我遇到了无法执行click()操作的问题。

这是我的测试代码:

public class Firstflow {
    static DesiredCapabilities dc = new DesiredCapabilities();
    @SuppressWarnings("rawtypes")
    static AndroidDriver driver;
    @SuppressWarnings("rawtypes")
    public static void main(String[] args) throws MalformedURLException, InterruptedException{              
        dc.setCapability("deviceName", "emulator-5444");
        dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.mol.molwallet.uat");
        dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.mol.molwallet.module.start.SplashActivity");
        driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), dc);
        driver.setLogLevel(Level.INFO);
        Thread.sleep(5000); 
        driver.findElement(By.className("_highlighter-box_619e8 _inspected-element-box_619e8")).click();
        driver.findElement(By.xpath("//*[@text='LOG IN']")).click();
        driver.findElement(By.xpath("//*[@text='Region']")).click();
        driver.findElement(By.xpath("//*[@text='Malaysia']")).click();
        driver.findElement(By.xpath("//*[@id='etAccount']")).sendKeys("123456");
        driver.findElement(By.xpath("//*[@text='NEXT']")).click();
    }
}

有问题的代码行是driver.findElement(By.className("_highlighter-box_619e8 _inspected-element-box_619e8")).click();

我需要点击下面的屏幕快照中突出显示的链接“ SKIP”。元素的详细信息也按照突出显示。 enter image description here

我尝试过By.xpath,现在尝试过By.className,两者都会导致错误(Exception in thread "main" org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters.)

希望获得解决此问题的建议。

2 个答案:

答案 0 :(得分:1)

这非常简单。在代码中使用如下所示的动态xpath

// * [包含(text(),'跳过']

答案 1 :(得分:1)

最好将页面源代码粘贴为代码而不是图像,获得全面答案的机会会更高,因此下次考虑执行driver.getPageSource()命令并将文本粘贴到此处。

因为我们看不到完整的页面源,所以我只能给出一个“盲注”:尝试使用normalize-space() function,例如:

//div[normalize-space()='SKIP'] | //div/child::*[normalize-space()='SKIP'] | //div/descendant::*[normalize-space()='SKIP']

更多信息: