我是Selenium的新手,这是我第一个使用java的webdriver代码。 我正在尝试打开谷歌页面并搜索seleniumhq.org。 我的问题是 - 当我使用其名称检查元素时,如果我更改它以通过其id找到元素,则代码完美且相同的代码。我收到一条错误消息"线程中的异常" main" org.openqa.selenium.InvalidElementStateException:元素被禁用,因此不能用于操作"
请帮助我理解这个问题。 包com.webdriver.chapter1;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class NavigateToUrl {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.co.in");
WebElement searchBox = driver.findElement(By.id("gs_htif0"));
//System.out.println(searchBox.getText());
//List<WebElement> buttons = driver.findElements(By.className("gsfi"));
//System.out.println(buttons.size());
searchBox.sendKeys("seleniumhq.org");
searchBox.submit();
//WebElement aboutLink = driver.findElement(By.linkText("Videos"));
//aboutLink.click();
} }
答案 0 :(得分:2)
该错误告诉您,您在网页上禁用了您通过ID选择的元素。
快速浏览google.co.in的HTML结构告诉我,您尝试选择的元素实际上是禁用的:
<input class="gsfi"
disabled=""
autocomplete="off"
aria-hidden="true"
id="gs_htif0" dir="ltr"
style="border: none;
padding: 0px;
margin: 0px;
height: auto;
width: 100%;
position: absolute;
z-index: 1;
-webkit-text-fill-color: silver;
color: silver;
transition: all 0.218s;
-webkit-transition: all 0.218s;
opacity: 0;
text-align: left;
left: 0px;
background-color: transparent;">
您应该选择非禁用元素,其ID为:&#34; lst-ib&#34;