【发布时间】:2018-02-06 05:26:59
【问题描述】:
我正在自动化一个包含一些操作的网页,但这些操作元素经常更改,从而导致异常。有没有办法在运行时获取实时元素或 selenium webdriver 中的任何其他解决方案?
环境:Eclipse phone m4、Java 8、Selenium Webdriver 3.8.1、Chrome 64、Windows 8。
代码sn-p:
driver.get("https://www.qcommission.com");
driver.switchTo().frame("60343815682962");
wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath(".//*[@id='header_42']"), "Demo Inquiry"));
Thread.sleep(2000);
driver.findElement(By.id("input_24")).clear();
driver.findElement(By.id("input_24")).sendKeys(name);
driver.findElement(By.id("input_16")).clear();
driver.findElement(By.id("input_16")).sendKeys(emailjoin);
driver.findElement(By.id("input_50")).clear();
driver.findElement(By.id("input_50")).sendKeys(count_of_payee);
driver.findElement(By.id("input_51_full")).clear();
driver.findElement(By.id("input_51_full")).sendKeys(phone_number);
driver.findElement(By.id("input_48")).click();
driver.switchTo().defaultContent();
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Thread.sleep(50000);
if(driver.getPageSource().contains("Thank you for your inquiry!"))
{
System.out.println("PASS - Demo Inquiry");
driver.close();
driver.quit();
}
else
{
System.out.println("FAIL - Demo Inquiry");
driver.close();
driver.quit();
}
【问题讨论】:
-
请分享代码sn-p..
-
你可以通过它的文本获取元素。
-
至少与您分享 HTML,以便我们了解您想要获取的元素。
-
嗨 Vikas 和 Sagar,请在下面找到代码 sn-p.Eg。 driver.findElement(By.xpath(".//*[@id='ctl00_ltaccordian']/a")).click();在这里,我们硬编码了通过检查从浏览器中获取的 xpath 元素。但它可能会在未来改变这个元素..所以我们会得到一个例外
-
嗨 Mahesh,对于输入字段,我们没有正确的文本..
标签: java selenium xpath selenium-webdriver ui-automation