【问题标题】:How to Navigate /visit various URLs using the same tab using Java如何使用 Java 使用同一选项卡导航/访问各种 URL
【发布时间】:2015-12-16 07:02:45
【问题描述】:
我正在尝试使用一个简单的 java 类来创建浏览测试以导航到多个 URL,我的代码的问题是每个 URL 都在新选项卡中打开,但我希望每个 URL 在相同的浏览器选项卡。有人告诉我,我目前的方法有点不对劲。
大多数人如何使用 Java 进行这些类型的浏览测试?
有没有人对他们将如何做到这一点有其他想法?
目标是检查一个网站的大约 15-20 个 URL,每个页面加载大约 3 秒钟,然后转到列表中的下一个 URL。
我的代码在下面...
import java.awt.Desktop;
import java.net.URI;
public class BrowseBingTest {
public static void main (String args[]) throws Exception {
Desktop d = Desktop.getDesktop();
d.browse(new URI("http://www.bing.com"));
d.browse(new URI("http://www.outlook.com"));
}
}
【问题讨论】:
标签:
java
testing
automated-tests
qa
browser-automation
【解决方案1】:
目标是检查一个网站的大约 15-20 个 URL,
也许您只是想验证 URL 是否有效?
如果是这样,您可以使用以下代码检查 URL:
/*
** Check if the URL is valid (ie. it represents an actual file)
*/
public boolean isValid(URL url)
{
try
{
// Make first attempt using a HEAD request
// (the HEAD request won't actually read the data)
HttpURLConnection http = (HttpURLConnection)url.openConnection();
http.setRequestMethod( "HEAD" );
http.connect();
// Some invalid HEAD request work with a GET request, try again
// (but it reads the data so it is slower than a HEAD request)
if ( http.getResponseCode() != HttpURLConnection.HTTP_OK)
{
System.out.print( http.getResponseCode() + " : " );
System.err.print( http.getResponseCode() + " : " );
http = (HttpURLConnection)url.openConnection();
http.setRequestMethod( "GET" );
http.connect();
}
return http.getResponseCode() == HttpURLConnection.HTTP_OK;
}
catch (IOException e)
{
return false;
}
}