java版selenium操作隐藏对象的方法

想要通过selenium模拟点击只有一个隐藏的转跳标签的html,代码如下:

<html>
	<head>
	</head>
	<body>
		<a id="test" href="http://www.atstudy.com/login" style="display:none">test</a>
	</body>
</html>

常规的selenium java版通过标签id模拟点击的代码如下:

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.gecko.driver","D:\\Others\\Gadget\\driver\\geckodriver.exe");
		WebDriver fd = new FirefoxDriver();
		fd.get("http://localhost:8080/my/test.html");//本地机器tomcat下的一个html文件
		WebElement signOut = fd.findElement(By.id("test"));
		signOut.click();
		//System.out.println(fd.getPageSource());
		
	}

由于标签的dispaly属性的none,所以以上的方法无法捕捉到相应的标签,需要通过在java代码中加入一段js并执行js将display属性修改为block或其他。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.gecko.driver","D:\\Others\\Gadget\\driver\\geckodriver.exe");
		WebDriver fd = new FirefoxDriver();
		//fd.get("http://www.atstudy.com/login");
		fd.get("http://localhost:8080/my/test.html");
		
                String js = "document.getElementById(\"signOut\").style.display=\"block\"";//将display属性修改为block的js代码
		((JavascriptExecutor) fd).executeScript(js);//执行js

                WebElement signOut = fd.findElement(By.id("test"));
		signOut.click();
		//System.out.println(fd.getPageSource());
	}
执行代码后,就可以模拟点击隐藏的转跳标签了。


阅读更多

没有更多推荐了,返回首页