java

bxpogfeg  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(248)

我正在努力想办法把文本/url粘贴到chrome的一个新标签上。我正在以无头模式运行linux上的测试。所以,我可以启动一个新的标签,但无法粘贴在导航栏的网址。
为什么要粘贴url?我必须点击一个按钮,这将给我的网址,我必须启动一个新的标签上的网址。
这是我试图让它工作的代码。

copyBtn.click(); //copying the URL
    ((JavascriptExecutor) driver).executeScript("window.open()");// launching a new tab
    SeleniumUtils.switchBrowserTab(driver, 1);
    Actions actions = new Actions(driver);
    actions.sendKeys(Keys.COMMAND, "v").sendKeys(Keys.ENTER).build().perform(); //sending the paste command 
    System.out.println(driver.getCurrentUrl());

系统输出正在打印 about:blank 而不是粘贴的文本。我想这是因为我没有把注意力集中在导航栏上。我准备了许多博客,但似乎没有办法集中在导航栏。有人能告诉我们这个用例是如何实现的吗?
另外,我没有现成的网址,老实说,我不知道我如何才能得到复制的网址。因为我没有在本地运行,所以无法使用工具箱。谢谢您。

mnowg1ta

mnowg1ta1#

我经常用这个:

public void openNewTab(WebDriver driver) throws InterruptedException {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("window.open('');");
    Thread.sleep(100);
}

public void gotoTab(WebDriver driver, int tabIndex) throws InterruptedException {
    List<String> winHandles = new ArrayList<>(driver.getWindowHandles());
    Thread.sleep(500);
    driver.switchTo().window(winHandles.get(tabIndex));
}
WebDriver driver = ...;
openNewTab(driver);
gotoTab(driver, 1); // zero based
driver.get("...");

相关问题