当前位置: 首页 > 知识库问答 >
问题:

如何使用操作类在 chrome 中打开新标签页

井旺
2023-03-14

如何在Chrome上打开新标签。我需要从中获取一些数据,回到我之前的标签并输入数据。我知道如何遍历标签,但我无法打开新标签。

硒版本:3.5.2
Chrome版本:60

package Amazon;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class VerifyAmazonSignInPage {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chrome.driver", "C://Selenium jars/chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.get("http://www.amazon.in");
        driver.findElement(By.xpath("//span[text()='Hello. Sign in']")).click();
        driver.findElement(By.id("ap_email")).sendKeys("seleniumoar1234@gmail.com");
        driver.findElement(By.id("ap_password")).sendKeys("*****");
        driver.findElement(By.id("signInSubmit")).click();
        Actions act = new Actions(driver);
        act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform();
        driver.get("http://www.gmail.com");


    }

}

共有2个答案

仲俊豪
2023-03-14

操作类是一个硒类,只能用于自动化基于Web的应用程序。打开新选项卡是在web浏览器上执行的操作,这是一个独立的应用程序。它可以通过使用java.awt包中的机器人类来完成。

仲孙思源
2023-03-14

我用于 Action 类的经验法则是,仅将其用于模拟最终用户的鼠标操作。请勿将其用于其他目的。

在您的情况下,您需要将密钥发送到浏览器,您可以使用WebDRiver Interface的任何实现来做到这一点。那么你想如何打开一个新标签呢?

最简单的方法是在body元素上发送密钥以打开新标签-

   driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL + "t");

但是在某些情况下,这不起作用,所以我更喜欢JavascriptExec的,我在上面写了帖子,因为它是与平台无关的解决方案。

  ((JavascriptExecutor) driver).executeScript("window.open('http://gmail.com/','_blank');");

注意,打开新标签页后,你必须注意切换标签页,它不会自动工作。

 类似资料:
  • 新选项卡正在打开,但URL链接未打开。

  • 这是我写的代码,以打开一个新标签在已经打开Chrome但它是重定向到第二个url在现有的标签只有。 我想打开一个新选项卡并加载“www.mailinator.com”的url 有人能帮我吗?

  • 很好的一天。请您通过打开Chrome浏览器创建一个新选项卡,在其中执行一些操作,关闭新选项卡,然后返回第一个选项卡并继续在其中工作,来判断Selenium VBA是否可行? 我用以下代码打开浏览器:

  • 问题内容: 在chrome中,这会在新标签页中打开: 这会在新窗口中打开(但我也想在新标签页中打开它: 这可行吗? 问题答案: 您不能直接控制它,因为它是由Internet Explorer用户控制的选项。 使用Window.open使用不同的窗口名称打开页面将在新的浏览器窗口(如弹出窗口)中打开,或者在用户配置的浏览器中打开。 编辑: 更详细的解释: 1. 在现代浏览器中,window.open

  • 我试图在Chrome中找到某种功能设置或配置文件来自动打开一个新窗口中的链接,这些链接应该在一个标签中打开,但没有找到任何令人信服的解决方案,大多数建议都是Ctrl+点击链接。

  • 问题内容: 自从将近一个月以来,我一直在使用CasperJS测试框架来制作一些测试套件,但是其中之一面临着一个问题。 这是我要执行的操作:我正在浏览一个url(第1页),并且必须从另一个url(像在图形浏览器中那样模拟新选项卡)执行另一个操作,而不必退出第一个(第1页)。来自第二个URL的操作将更改我的第一个URL。希望它足够清楚:) 因此,现在,当我到达观察第一个URL的步骤时,我通过执行操作打