我正在尝试使用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”。元素的详细信息也按照突出显示。
我尝试过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.)
希望获得解决此问题的建议。
答案 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']
更多信息: