在Chrome中使用Selenium网络驱动程序时遇到一些问题。
我的目标是让用户在15-30秒内自行登录,然后开始进行自动化测试。
问题是在我点击登录按钮并转到下一页后,我无法通过xpath,id等找到元素。
0.75
我也试过使用明确的等待而没有运气,例如:
public static void runTest() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://www.url.com");
driver.manage().window().maximize();
Thread.sleep(15000);
driver.findElement(By.xpath("//*[@id=\"content-main\"]/div/div/form/div/p/input")).click();
System.out.println("User has logged in and it has found element for Attachment Upload.");
Thread.sleep(15000);
driver.findElement(By.xpath("//*[@id=\"invoiceMenu\"]/a")).click();
}
我经常回来的错误是:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("someid")));
编辑:
能够让一些元素(角度元素)与Chrome的一些插件一起使用。 Element Locator和ChroPath非常棒。玩了一些,但是一旦我拿到了,我就能把剩下的人拼凑起来。
答案 0 :(得分:1)
我建议你在浏览器上打开chrome控制台并尝试与有问题的元素进行交互,例如使用:
document.getElementById('someId').click()
如果您能够点击这样的元素,那么您可以在代码中使用javascript executor,如下所示:
((JavascriptExecutor)driver).executeScript("document.getElementById('someId').click();");