为什么Google Chrome有时无法与元素进行互动

时间:2017-12-30 15:43:36

标签: java selenium selenium-webdriver

我正在学习硒,对此我是新手。 我试图生成一个自动脚本来联系gmail注册页面,然后填写所有细节。 这就是我想简要说明的事情: 1.使用baseurl启动谷歌浏览器,以及#34; www.google.com" 2.单击gmail链接(右上角和#34;图像") 3.在Gmail登录页面上,单击"更多选项" 4.点击"创建帐户" 5.在测试数据中键入字段

我遇到的问题是,有时会成功点击创建帐户链接,有时则不会。

我使用selenium和java。

以下是代码:

    System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Downloads\\TESTING\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();

    String baseUrl = "http:\\www.google.co.in";
    driver.get(baseUrl);
    System.out.println(driver.getTitle());

    WebDriverWait wait = new WebDriverWait(driver, 2);
    driver.findElement(By.xpath("//*[@id=\"gbw\"]/div/div/div[1]/div[1]/a")).click();
    driver.findElement(By.xpath("//*[@id=\"view_container\"]/form/div[2]/div/div[2]/div[2]/div")).click();

    wait.until(ExpectedConditions.elementToBeClickable(By.id("SIGNUP")));
    driver.findElement(By.className("z80M1")).click();
    driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    System.out.println(driver.getTitle());
    driver.findElement(By.id("FirstName")).sendKeys("abcd");
    System.out.println(driver.getTitle());

    driver.close();

有时会成功点击“创建帐户”链接,有时则不会。 有时会遇到这个错误:

线程中的异常" main" org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"方法":" id","选择器":" FirstName& #34;}

任何帮助都将受到高度赞赏。 另外,如果我做错了,请告诉我。

2 个答案:

答案 0 :(得分:0)

尝试增加显式/隐式等待时间。当前等待是2秒,似乎元素未在2秒时间限制内加载

答案 1 :(得分:0)

什么 Selenium(至少意图)很棒。 它是如何实现的,一直以来,而且很可能永远都是一个小小的元素。

一般来说,API有效,但不正确。每次我使用它,我都发现时间/事件等不能正常工作。也就是说,当Selenium认为它不是“完成”时。

提示:

  • 从不信任Selenium知道发生了什么
  • 始终在行动之间编码您自己的暂停

通常情况下,在来自Selenium的通知已经加载页面后,我会休息1秒。有时我需要更大的停顿。

虽然这会降低您的测试速度,但这通常不是什么大问题,因为行为测试套件通常需要相当长的时间(小时)才能完成。并且最好避免误报。