我刚开始使用selenium web-driver。我正在尝试使用它登录和导航/刮擦。
public static void main(String[] args) {
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF);
java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);
WebDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME);
driver.get("my_Site_I_Reference");
@SuppressWarnings("unused")
WebDriverWait wait = new WebDriverWait(driver, 4000);
WebElement name = driver.findElement(By.id("LoginUsername"));
name.sendKeys("exampleName");
name.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
我正在使用上面的代码尝试在用户名字段中输入用户名,但我经常遇到此错误:
“org.openqa.selenium.NoSuchElementException:无法找到ID为:LoginUsername”的元素
我几乎可以肯定该元素名为LoginUsername,如图所示:
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
这仍然是猜测,但我怀疑该元素在iframe
内。如果是这种情况,在查找元素之前切换到iframe
:
driver.switchTo().frame("frame_id_or_name");
WebElement name = driver.findElement(By.id("LoginUsername"));
答案 1 :(得分:0)
请详细分享HTML代码吗?同时,您也可以尝试将其更改为以下内容并分享您所看到的内容?
WebElement name = driver.findElement(By.xpath(“//*[@id="LoginUsername"]”));
OR
WebElement name = driver.findElement(By.xpath(“//input[@id="LoginUsername"]”));
答案 2 :(得分:0)
原来我默认禁用了Javascript我通过打印我的代码加载的页面源找到了这个
((HtmlUnitDriver) driver).setJavascriptEnabled(true);
启用后,selenium表现得像我预期的那样