我正在学习硒,对此我是新手。我试图生成一个自动脚本来联系gmail注册页面,然后填写所有细节。以下是我想要简要介绍的内容:1。使用baseurl作为“www.google.com”启动谷歌浏览器2.点击Gmail链接(“图像”旁边的右上角)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:没有这样的元素:无法定位元素:{“method”:“id”,“selector”:“FirstName”}
任何帮助将受到高度赞赏。另外,如果我做错了,请告诉我。
尝试增加显式/隐式等待时间。当前等待是2秒,似乎元素没有在2秒的时间限制内加载
Selenium做的事情(至少是意图)很棒。它是如何做到的,一直以来,而且很可能永远是一个小小的元素。
一般来说,API有效,但不正确。每次我使用它,我都发现时间/事件等不能正常工作。也就是说,当Selenium认为它不是“完成”时。
提示:
通常情况下,我在Selenium通知页面加载后休息1秒钟。有时我需要更大的停顿。
虽然这会降低您的测试速度,但这通常不是什么大问题,因为行为测试套件通常需要相当长的时间(小时)才能完成。最好避免误报。