Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript selenium sendkeys不';t函数_Javascript_Java_Selenium_Selenium Webdriver_Textfield - Fatal编程技术网

Javascript selenium sendkeys不';t函数

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”不会发送到文本字段 我怎样才能解决这个问题? 当文本字段

早上好, 在java中,使用带有SELENIUM库的命令sendKeys时遇到问题

有问题的文本字段只有在向下滚动查看时才在窗口中可见

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')");