除非将Thread.sleep包裹在Selenium中的try catch块中,否则它将不起作用

时间:2019-08-09 19:43:06

标签: java selenium selenium-chromedriver

我正在写硒代码。

除非我将Thread.Sleep放在try catch块中,否则它将不起作用。实际上会引发编译时错误。

为什么呢?

	public void test() {
		
		System.out.println("in the test method");
		achromeDriver.get(abaseUrl);
		
		try {
			Thread.sleep(6000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		WebElement benzRadioBtn = achromeDriver.findElement(By.id("benzradio"));
		benzRadioBtn.click();
		
		WebElement benzCheckBox = achromeDriver.findElement(By.id("benzcheck"));
		benzCheckBox.click();
		
		System.out.println("Is ben radio button selected ? "+  benzRadioBtn.isSelected());
		
	}

1 个答案:

答案 0 :(得分:3)

Thread.sleep()方法引发InterruptedException。是否会实际引发此异常取决于Java代码执行期间发生的情况,该方法只是让您知道它可能发生,并且应该以某种方式处理它。

处理异常的一种方法是将其放入try catch块中,因此,如果引发异常,程序仍将继续执行,并且catch块中的代码将执行。

如果您真的不想要try catch块(不知道为什么不这样做),可以在方法顶部添加一个throws声明,看起来像这样:

    public void test() throws InterruptedException {

我将阅读有关Java异常及其工作方式的更多信息

https://stackify.com/specify-handle-exceptions-java/

https://www.geeksforgeeks.org/exceptions-in-java/