Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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/6/opengl/4.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
Java 按Ctrl+;在Selenium中使用IEDriverServer时,单击表中的一行后,将选择网页上的整个文本。为什么?_Java_Selenium_Selenium Webdriver_Internet Explorer 11 - Fatal编程技术网

Java 按Ctrl+;在Selenium中使用IEDriverServer时,单击表中的一行后,将选择网页上的整个文本。为什么?

Java 按Ctrl+;在Selenium中使用IEDriverServer时,单击表中的一行后,将选择网页上的整个文本。为什么?,java,selenium,selenium-webdriver,internet-explorer-11,Java,Selenium,Selenium Webdriver,Internet Explorer 11,使用ChromeDriver执行相同操作时,将选择所有行。但是,我只想使用IEDriverServer选择表中的所有行,因为该网站只在Internet Explorer中工作,没有任何错误 我在Java 8程序中使用IEDriverServer_Win32_3.9.0和selenium-server-standalone-3.141.59.jar。我试过“setNativeEvents”是真是假,但它不起作用 代码: //选择第一行 element=driver.findElement(By.x

使用ChromeDriver执行相同操作时,将选择所有行。但是,我只想使用IEDriverServer选择表中的所有行,因为该网站只在Internet Explorer中工作,没有任何错误

我在Java 8程序中使用IEDriverServer_Win32_3.9.0和selenium-server-standalone-3.141.59.jar。我试过“setNativeEvents”是真是假,但它不起作用

代码:

//选择第一行
element=driver.findElement(By.xpath(“//*[@id=\“t53687103\”]/tbody/tr[2]”);
操作。单击(元素)。执行();
//选择所有行
action.keyDown(Keys.CONTROL).sendKeys(String.valueOf('a')).perform();
//取消选择第一行
睡眠(5000);
action.keyDown(Keys.CONTROL).单击(元素).perform();
//重新选择第一行
睡眠(5000);
action.keyDown(Keys.CONTROL).单击(元素).perform();
出于某种原因,我必须取消选择,然后重新选择“Ctrl+a”之后的任何行,以使我必须单击的按钮可交互。但这不应该成为Selenium在使用IEDriverServer时出现不必要行为的原因。 此外,请注意,在IE中单击行后手动按“Ctrl+a”,将选择所有行,就像在Chrome中一样。我无法理解为什么在使用IE自动化时这种行为会改变

如果您有其他解决方法来选择IE中的所有行,我愿意接受建议


编辑:我还尝试发送“action.keyDown(Keys.CONTROL)”。在循环中对每一行(由“element”表示)逐个单击(element).perform(),我可以看到行上的高亮显示,这进一步确认了驱动程序可以发现该行。当使用ChromeDriver时,此循环再次按预期工作(逐个选择所有行),但当使用IEDriverServer时,一行高亮显示/选择,然后释放,然后另一行高亮显示,然后释放,依此类推。

当您在IE中手动单击该行,然后按Ctrl+A,它选择所有表行还是整个页面?@GregBurghardt它选择所有表行。“因为网站只在Internet Explorer中工作,没有任何错误”无论如何,您可以尝试显式地将焦点设置为
元素
。尝试检查您的代码是否能够使用IE中的xpath找到正确的元素?如果发现不正确的元素,则可能导致此问题。尝试一步一步地调试代码,并检查它对网页的影响,这可能有助于缩小问题的范围。