java 当我关闭Selenium中的单个打开选项卡时,如何在我的测试中保持相同的会话ID?

crcmnpdw  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(154)

我想运行一个测试脚本。

  • 登录页面
  • 使用有效凭据登录
  • 关闭当前单个选项卡
  • 再次转到登录页面
  • 验证浏览器是否会转到主页而不是登录页面。

但我不知道我该怎么做。因为如果我使用关闭或退出方法,会话ID将被杀死。即使我打开新的浏览器进行另一个步骤,它将不会与真实的场景相同。因为手动,如果我试图进入登录页面后,关闭单一打开的主页没有注销,我可以直接进入主页。我不能自动化它。
我使用了一些Actions方法来关闭和打开新的标签页。
在这个例子中,我们可以用一个简单的方法来定义一个元素。
(“主体”)).sendKeys(键.控制+ 'w');
我使用的是Selenium+Java+Cucumber+Chrome+Mac

rhfm7lfc

rhfm7lfc1#

您可以使用profile来实现这个场景。我刚刚给出了一些示例代码:

WebDriverManager.chromedriver().setup();

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--user-data-dir=C:\\Temp\\");
    options.addArguments("--profile-directory=ChromeData");

    driver = new ChromeDriver(options);
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    driver.get("https://www.flipkart.com/");
    driver.findElement(By.xpath("//input[@class='_2IX_2- VJZDxU']")).sendKeys("<username>");
    driver.findElement(By.xpath("//input[@class='_2IX_2- _3mctLh VJZDxU']")).sendKeys("<password>");
    Thread.sleep(1000);
    driver.findElement(By.xpath("//button[@class='_2KpZ6l _2HKlqd _3AWRsL']")).click();
    Thread.sleep(3000);
    driver.close();
    Thread.sleep(1000);

    driver = new ChromeDriver(options);
    driver.manage().window().maximize();
    driver.get("https://www.flipkart.com/");

上面的代码将在目录-“C:\Temp\ChromeData”中创建一个新的chrome配置文件,然后打开浏览器,启动URL,登录,关闭窗口,再次打开一个chrome浏览器,启动相同的URL,但这一次,用户已经登录了。

相关问题