当我点击复制链接时,表示复制了网址,然后打开新标签,并使用selenium webdriver将复制的网址粘贴到新标签中。 下面的代码适用于windows而不是mac。 当我在mac系统中使用这个代码时,任务栏中都会出现一些java软件图标。附上截图供您参考。Java software icon in right corner and application screenshot Error in console
我的代码:
String element=Util.OR_VF_MY_ACCOUNT_PAGE.getProperty("myAccountPageCopyUrlLinkInWishList");
$(element).click();
winHandleBefore= getDriver().getWindowHandle();
Set<String> handles = getDriver().getWindowHandles();
//getDriver().findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_CONTROL);
for(String windowHandle : handles)
{
if(!windowHandle.equals(winHandleBefore))
{
getDriver().switchTo().window(windowHandle);
}
}
Util.pause(4);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Util.pause(4);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Util.pause(4);
答案 0 :(得分:0)
我认为这是因为在Mac / Unix OS上没有“Control”键。尝试在Mac / unix系统上使用“Command”键。
以下是关于如何检查哪个系统正在运行的post,以便您可以自动从“Ctrl”更改为“命令”
修改
使用javascript,您可以根据浏览器实施打开新的标签/窗口。我不知道是否可以通过同一个WebDriver实例访问一个新窗口(我无法在其中测试它)。 但基本上这个snippit应该适用于大多数驱动程序。
// driver is your WebDriver instance
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor)driver).executeScript(
"var win = window.open('http://www.example.com/', '_blank');" +
"if (win) {" +
" //Browser has allowed it to be opened" +
" win.focus();" +
"} else {" +
" //Browser has blocked it" +
" alert('new tab/window couldn't be opened');" +
"}");
} else {
throw new IllegalStateException("This driver does not support JavaScript!");
}