Java Selenium Webdriver元素标识

Java Selenium Webdriver元素标识,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,嗨,我是Selenium Webdriver的新手 我已经采取了这一点,我试图点击注册链接。我已经编写了以下代码 driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.get("http://www.stepintohealth.qa"); driver.findElement(By.linkText("Register")).click();

嗨,我是Selenium Webdriver的新手

我已经采取了这一点,我试图点击注册链接。我已经编写了以下代码

driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.stepintohealth.qa");
driver.findElement(By.linkText("Register")).click();
在执行代码时,它正在抛出元素not found异常。我在seleniunm IDE中也尝试过同样的方法,它可以毫无问题地工作。我也验证了iframes,但iframes中没有注册链接。

欢迎来到Selenium世界。这通常是您面临的等待/查找问题。我添加了等待,以确保在执行单击之前元素存在

driver = new FirefoxDriver();
driver.get("http://www.stepintohealth.qa");

By byCss = By.cssSelector(".right1.navmenu a.register");
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(byCss ));
myDynamicElement.click();
要记住以下几点:

您不希望将隐式和显式等待混合在一起,因为这可能是一个性能问题。不建议这样做。 选择器在唯一地查找元素时非常重要。我倾向于尽量避免使用链接文本。身份证永远是你的首选。如果可以,请尝试使用name、clasName、cssSelector和xpath。在本例中,className并没有很好地工作。使用cssSelector进行测试并完成了它应该做的事情。有关更多信息,请参阅。
这是什么语言?Java?非常感谢,它成功了。我只是把等待时间改为30秒。我真的很想知道为什么我对这个答案投了反对票。请留下评论,给我改进的机会。