硒找不到元素

时间:2018-04-13 22:41:33

标签: google-chrome selenium webdriver find element

在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非常棒。玩了一些,但是一旦我拿到了,我就能把剩下的人拼凑起来。

1 个答案:

答案 0 :(得分:1)

我建议你在浏览器上打开chrome控制台并尝试与有问题的元素进行交互,例如使用:

document.getElementById('someId').click()

如果您能够点击这样的元素,那么您可以在代码中使用javascript executor,如下所示:

((JavascriptExecutor)driver).executeScript("document.getElementById('someId').click();");