selenium sendkeys不起作用

时间:2015-07-06 10:16:39

标签: javascript java selenium selenium-webdriver textfield

早上好, 我在java中使用命令sendKeys和SELENIUM库有问题。

只有当您向下滚动才能看到它时,文本字段在窗口中可见。

var element = driver.FindElement(By.Xpath("…"));
element.SendKeys("blah");

因此,当文本字段在窗口中可见时,消息" blah"被发送到文本字段元素没有任何问题。

相反,当文本字段元素在窗口中不可见时,因为我没有向下滚动它,消息" blah"没有发送到文本字段。

我该如何解决这个问题? 我想发送消息" blah"当文本字段元素没有出现在窗口中时也是如此。 我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

使用executeScript将元素滚动到视图中。

driver.executeScript("arguments[0].scrollIntoView();",element);
element.sendKeys("blah");

答案 1 :(得分:0)

您可以使用Actions moveToElement方法执行此类操作

  

public Actions moveToElement(WebElement toElement)

     

移动鼠标    到元素的中间。元素滚动到视图中   它的位置是使用getBoundingClientRect计算的。

new Actions(driver).moveToElement(element).build().perform();
element.SendKeys("blah");

答案 2 :(得分:0)

如果您无法使用标准的SendKeys方法设置文本,则可以尝试使用ExecuteScript(如果SendKeys中存在问题,而不是选择器中的问题=))。 Smth喜欢:

webdriver.executeScript("document.getElementById('elementID').setAttribute('value', 'new value for element')");