????为systems.setProperty添加@BeforeClass最终正常工作。 ??
????它给出了nullpointer ????? driver.get ?????声明,因为你还没有初始化 ????? driver ?????优先级= 3测试。 ???? ???? 每个测试的范围都不同,因此您需要在每个要使用它的测试中初始化它。 ??
driver.get
driver
????在priority = 2中,您已使用初始化它 ????? driver = new ChromeDriver(); ????,所以类似地你需要在priority = 3测试中初始化它然后你需要执行 ????? driver.get(url) ?????它会起作用。 ??
driver = new ChromeDriver();
driver.get(url)
????你的测试2和测试3应该是这样的: ??
@Test(priority=2) public void OpenBrowserChrome() { WebDriver driver = new ChromeDriver(); driver.get("https://testng.org/doc/index.html"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); System.out.println("Successfully opened the website "); driver.findElement(By.xpath("//[@id='topmenu']/table/tbody/tr[2]/td[1]/a")).click(); driver.quit(); } @Test(priority=3) public void Issue() throws InterruptedException { WebDriver driver = new ChromeDriver(); driver.get("https://testng.org/doc/index.html"); driver.findElement(By.xpath("//[@id='topmenu']/table/tbody/tr[2]/td[1]/a")).click(); Thread.sleep(5000); driver.findElement(By.xpath("/html/body/a[13]")).click(); driver.quit(); }
????如果你想像test3那样点击延续中的两个元素,你需要创建一个驱动程序的单独实例而不是test2,然后再次点击url,然后你需要点击元素。在上面的场景中,您可以删除test2,因为它实际上并没有为您解决任何目的,您可以在test3中执行这两个操作。 ??