复制/剪切/粘贴的selenium.interactions.Actions类在chrome浏览器中不起作用-Selenium Test Automation

时间:2019-03-20 11:55:14

标签: selenium selenium-chromedriver

我必须在应用程序中复制一个对象(文本/形状)并将其粘贴到另一个区域。

在这种情况下,我必须粘贴到webElement上。所以我不能使用它-

driver.findElement(By.id("")).sendKeys(Keys.chord(Keys.CONTROL,"v"));

所以我正在硒中使用Actions类-selenium.interactions.Actions

actions.keyDown(command).sendKeys("c").keyUp(command).build().perform();

此方法在Chrome72chromedriver 72下不起作用。

我已经面对这个问题很多个月了。并上网浏览解决方案,并且有很多网站都在谈论它-

https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/5946

但是找不到任何答案,并且在最新版本的chrome和chromedriver中仍然存在该问题。

2 个答案:

答案 0 :(得分:0)

G Chrome中似乎有一个语法可以阻止此快捷方式:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=581

而且不会得到解决。

也许您可以找到解决方案。就Ctrl + T而言,我使用

npm i nexe@next -g

另一种选择是使用机械手,但是它只能在活动窗口中使用。在paralell测试中将无法使用。如果您同时工作,它将不起作用。这会将命令发送到计算机,而不是浏览器。并且您的窗口必须处于活动状态:

TLS Alert read: fatal: access denied
TLS_accept: failed in SSLv3 read client certificate A
rlm_eap: SSL error error: 14094419: SSL routines: SSL3_READ_BYTES: tlsv1 alert access denied

我希望这会有所帮助。正如我所说的,它并非每次都起作用;)

答案 1 :(得分:0)

我建议在复制之前在代码中使用Control + a键,因为您可能需要先选择整个文本,然后再复制文本。

driver.findElement(By.id("xyz")).sendKeys(Keys.chord(Keys.CONTROL, "a"));
driver.findElement(By.id("xyz")).sendKeys(Keys.chord(Keys.CONTROL, "c"));