提问人:asn 提问时间:8/28/2023 最后编辑:paulsm4asn 更新时间:8/28/2023 访问量:43
Java Selenium WebDriver 在到达最后一行代码后关闭 Web 浏览器?
Java Selenium WebDriver closes the web browser after reaching the last line of code?
问:
在不使用 driver.close() 的情况下,webdriver 会关闭 Selenium 4 中的浏览器窗口。 我希望浏览器保持打开状态,直到我说 driver.close()。
执行我的代码后,Selenium Webdriver 不应关闭浏览器。 在我调用 driver.close() 或 driver.quit() 之前,应该打开 Web 浏览器。 是否有任何选项可以使浏览器保持打开状态。 我正在将 Selenium 4 与 Java 17 一起使用。
import java.time.Duration;
import org.openqa.selenium.WebDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class CloseBrowserTest_1
{
static WebDriver driver = null;
public static void main(String[] args) throws InterruptedException
{
driver = WebDriverManager.chromedriver().create();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
driver.manage().deleteAllCookies();
driver.get("https://www.google.com");
System.out.println("Title : " + driver.getTitle());
System.out.println("Current URL : " + driver.getCurrentUrl());
}
}
答:
1赞
Funky Monkey
8/28/2023
#1
有一些选项可以在最后一行代码之后保持浏览器打开状态。不知道你为什么要使用它,但希望这会有所帮助。
如果您正在等待某个元素或某些操作,则始终可以使用 .
这样,您的浏览器将保持打开状态,直到您正在等待的元素出现或超时到期(您定义自己的超时持续时间)。欲了解更多信息,请访问此链接wait
wait
另一方面,我不推荐,您可以使用.它使驱动器保持打开状态,但处于睡眠状态。不过,不建议使用此方法。Thread.sleep
评论
0赞
paulsm4
8/28/2023
听起来 OP 有一个控制台模式的 Java 程序,当他的程序结束时,webdriver 会关闭。它应该;)建议:只需在 的末尾添加 \aSystem.in.read() 即可。因此,在用户按“ENTER”之前,程序不会退出。main()
0赞
asn
8/28/2023
根据您的建议,我使用 System.in.read() 作为 main() 中的最后一个语句。代码按我预期工作。谢谢。
0赞
djmonki
8/29/2023
@paulsm4请将此添加为问题的明确答案,供可能遇到的其他人使用
0赞
djmonki
8/29/2023
@asn 请接受答案,一旦 paulsm4 发布它
评论