ElementNotVisibleException:尝试键入文本框时出现元素不可见错误

时间:2016-05-06 11:10:32

标签: selenium selenium-webdriver

我正在尝试输入一个预先填充了其他文本的文本框。它的文本框也类似于下拉列表(您可以输入该框,它会带来匹配的文本,如同下降。)输入它。我在页面上执行的操作是向下滚动页面,尝试找到元素(TextBox)并在其上书写。我使用以下代码

((JavascriptExecutor)驱动程序).executeScript("涡旋(0400)&#34);

    Thread.sleep(4000);

    WebDriverWait wait = new WebDriverWait(driver,20);
    wait.until(ExpectedConditions.ElementIsVisible(By.cssSelector("#reg_country"))); //examining the cssselector for a search       

    //driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    WebElement RegisteredCountry = driver.findElement(By.cssSelector("#reg_country"));
    RegisteredCountry.sendKeys("Afghanistan");

我在元素上输入之前也尝试了Implicit Wait。但它不成功。以下是我得到的错误。请指教

ElementNotVisibleException:尝试输入文本框时元素不可见错误

3 个答案:

答案 0 :(得分:0)

尝试单击文本框,然后在sendkeys之前执行清除。

答案 1 :(得分:0)

少数事情:
1.确认您的定位器始终只返回一个对象,这是您想要的对象 2.逐步在调试模式下运行代码,查看它在哪里中断或哪些控件对selenium不可见。
3.检查Firebug的HTML面板中的元素,检查它是否真的可见(或不是灰色) 尝试在其中一个公共网址上复制您的方案,以确保不会与App相关的问题或与selen相关的内容。

答案 2 :(得分:-1)

试试这个:

WebElement RegisteredCountry = driver.findElement(By.cssSelector("#reg_country")); RegisteredCountry.sendKeys("Afghanistan"); RegisteredCountry.sendKeys(Keys.ENTER);