早上好, 我在java中使用命令sendKeys和SELENIUM库有问题。
只有当您向下滚动才能看到它时,文本字段在窗口中可见。
var element = driver.FindElement(By.Xpath("…"));
element.SendKeys("blah");
因此,当文本字段在窗口中可见时,消息" blah
"被发送到文本字段元素没有任何问题。
相反,当文本字段元素在窗口中不可见时,因为我没有向下滚动它,消息" blah
"没有发送到文本字段。
我该如何解决这个问题? 我想发送消息" blah"当文本字段元素没有出现在窗口中时也是如此。 我怎么能这样做?
答案 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')");