gpt4 book ai didi

java - 如何使用 actions 类在相邻窗口或选项卡中打开链接(右键单击 element->sendkeys ArrowDown ->sendkeys Enter)

转载 作者:行者123 更新时间:2023-11-30 01:52:21 25 4
gpt4 key购买 nike

我想在新窗口中打开应用程序的链接。使用操作类在我当前所在的同一窗口中打开链接。

我尝试在多个应用程序的 Chrome 驱动程序和 Firefox 驱动程序上使用带有以下代码的 Actions 类,但没有成功。

System.setProperty("webdriver.gecko.driver", "D:\\MySpace\\AmozonEcomm\\Dependencies\\geckodriverv21.exe");
WebDriver driver = new FirefoxDriver(); //Creating an instance of Chrome driver
driver.manage().window().maximize();
driver.get("http://automate-apps.com/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

Actions action = new Actions(driver);
action.contextClick(driver.findElement(By.partialLinkText("Selenium Questions"))).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

我的期望是链接应该在新窗口中打开,因为我试图在上下文单击后选择“在新窗口中打开链接”选项。但每次链接都会在同一窗口中打开。

最佳答案

以下是在新窗口(而非选项卡)中打开链接的两个选项。

WebElement el = driver.findElement(By.partialLinkText("Selenium Questions"));
Actions action = new Actions(driver);

contextClick - contextClick() 可能是反复无常的,在某些环境中它只是拒绝实现与在其他环境中相同的结果。
不过,如果您想尝试使用它,请发送“w”键 - 这是“在新窗口中打开”的快捷方式:

action.contextClick(el).perform();
action.sendKeys("w").perform(); // in two steps
<小时/>

Shift+单击 - 新窗口的快捷方式是 Shift+单击,而不是 Ctrl+单击新选项卡。与 contextClick() 相比,这种方法具有更高的重复率 - 只要浏览器支持它。

action.keyDown(Keys.SHIFT).click(el).keyUp(Keys.SHIFT).build().perform();

关于java - 如何使用 actions 类在相邻窗口或选项卡中打开链接(右键单击 element->sendkeys ArrowDown ->sendkeys Enter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55650926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com