搜索by.id时出现selenium webdriver错误。

时间:2015-08-19 18:36:42

标签: selenium-webdriver

我是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();

} }

1 个答案:

答案 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;