Javascript selenium sendkeys不';t函数
早上好, 在java中,使用带有SELENIUM库的命令sendKeys时遇到问题 有问题的文本字段只有在向下滚动查看时才在窗口中可见Javascript selenium sendkeys不';t函数,javascript,java,selenium,selenium-webdriver,textfield,Javascript,Java,Selenium,Selenium Webdriver,Textfield,早上好, 在java中,使用带有SELENIUM库的命令sendKeys时遇到问题 有问题的文本字段只有在向下滚动查看时才在窗口中可见 var element = driver.FindElement(By.Xpath("…")); element.SendKeys("blah"); 因此,当文本字段在窗口中可见时,消息“blah”将毫无问题地发送到文本字段元素 相反,当文本字段元素在窗口中不可见时(因为我没有向下滚动),消息“blah”不会发送到文本字段 我怎样才能解决这个问题? 当文本字段
var element = driver.FindElement(By.Xpath("…"));
element.SendKeys("blah");
因此,当文本字段在窗口中可见时,消息“blah
”将毫无问题地发送到文本字段元素
相反,当文本字段元素在窗口中不可见时(因为我没有向下滚动),消息“blah
”不会发送到文本字段
我怎样才能解决这个问题?
当文本字段元素没有出现在窗口中时,我也希望将消息“blah”发送到文本字段元素。
如何操作?使用executeScript将元素滚动到视图中
driver.executeScript("arguments[0].scrollIntoView();",element);
element.sendKeys("blah");
你们可以用这种方法来做这些事情
公共行动moveToElement(WebElement toElement)
移动鼠标
到元素的中间。该元素将滚动到视图中并显示
使用getBoundingClientRect计算其位置
若您不能使用标准SendKeys方法设置文本,您可以尝试ExecuteScript(若问题确实出现在SendKeys中,而不是选择器=))。Smth类似:
webdriver.executeScript("document.getElementById('elementID').setAttribute('value', 'new value for element')");
您也可以向下滚动到包含selenium的元素:P@user3868055你可以分享网页链接或资源吗?你不需要向下滚动网页驱动程序就可以访问元素。该元素是“可见”的,即使您没有滚动到它,只要它实际呈现到dom而不是在另一个元素后面。但如果您确实必须滚动到页面的该部分才能呈现元素:
webdriver.executeScript("document.getElementById('elementID').setAttribute('value', 'new value for element')");