如何在 Selenium Webdriver 中处理会话?
借助 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(); //launch URL driver.get("https://tutorialspoint.com/index.htm"); //get session ID SessionId s = ((RemoteWebDriver) driver).getSessionId(); System.out.println("Session Id is for method1: " + s); }@Test public void myTest1 () { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); //launch URL driver.get("https://www.google.com/"); //get session ID SessionId s = ((RemoteWebDriver) driver).getSessionId(); System.out.println("Session Id is for method1: " + s); }@Test public void myTest2 () { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); //launch URL driver.get("https://tutorialspoint.com/about/about_careers.htm/"); //get session 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>
输出
广告