如何在 Selenium Webdriver 中处理会话?

seleniumautomation testingtesting tools

我们可以借助 Selenium Webdriver 和 TestNG 框架执行会话处理。要触发不同的会话,我们需要在 TestNG XML 文件中使用 parallel 属性。

TestNG 执行配置已在 TestNG XML 文件中完成。要创建多个会话,我们需要在 XML 文件中添加 parallel 和 thread-count 属性。

thread-count 属性控制在并行模式下执行测试时要创建的会话数量。parallel 属性的值设置为 methods。

在我们的示例中,我们将有三个方法,它们分别具有三个不同的会话 ID,并且正在并行执行。

示例

import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.SessionId;
public class TestNG10 {
   @Test
   public void myTest () {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //启动 URL
      driver.get("https://www.tutorialspoint.com/index.htm");
      //获取会话 ID
      SessionId s = ((RemoteWebDriver) driver).getSessionId();
      System.out.println("会话 ID 用于方法 1: " + s);
   }@Test
   public void myTest1 () {
      System.setProperty("webdriver.chrome.driver",
"C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //启动 URL
      driver.get("https://www.google.com/");
      //获取会话 ID
      SessionId s = ((RemoteWebDriver) driver).getSessionId();
      System.out.println("会话 ID 用于方法 1: " + s);
   }@Test
   public void myTest2 () {
      System.setProperty("webdriver.chrome.driver",
"C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //启动 URL
      driver.get("https://www.tutorialspoint.com/about/about_careers.htm/");
      //获取会话 ID
      SessionId s = ((RemoteWebDriver) driver).getSessionId();
      System.out.println("Session Id is for method1: " + s);
   }
}

TestNG XML 实现。

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<!—parallel methods set for execution with 3 threads-->
<suite name="Test-Suite" parallel="methods" thread-count="3">
   <test name="Tutorialspoint" >
      <classes>
         <class name="TestNG10" />
      </classes>
   </test>
</suite>

输出


相关文章