我正在使用Selenium来测试网页,并希望以更简单的方式更新测试用例(对问题不重要)。
我现在循环使用这行:
driver.get("http://vg.no"); //open the web page
try {
BufferedReader reader = new BufferedReader(new FileReader("//Users//file.txt"));
try {
String line = null;
while ((line = reader.readLine()) != null) {
driver.findElement(By.cssSelector(line)).click();; //find and click on the data specified in every line in the document
}
} finally {
reader.close();
}
} catch (IOException ioe) {
System.err.println("oops " + ioe.getMessage());
}
现在的文本文件内容示例:
a[href*='//nyheter//meninger//']
img[class*='logo-red']
img[class*='article-image']
我想将它重建为一个基于正则表达式启动不同命令的解决方案。 我试着让它以这种方式工作:
vg.no //this will start driver.get("vg.no")
img[class*='logo-red'] //this will start driver.findElement(By.cssSelector("img[class*='logo-red']")).click()
img[class*='article-image']
ItAvisen.no
img[class*='article-image']
img[class*='article-image']
有没有办法可以使用正则表达式根据文本文件中的内容启动代码的不同部分,并将文本文件中的部分内容用作变量?
在收到cvester的反馈后,它会这样运作:
查找img [class * ='logo-red']
的匹配项 String regexp = "img\\[class\\*=\\'*\\'(.*)\\]";
boolean match = line.matches(regexp);
答案 0 :(得分:1)
它仍然是基于行的吗?
在这种情况下,您可以逐行阅读,并为您识别的每个案例使用String.matches(String regex)
。
如果您可以指定更具体的信息,我可以为您提供更好的解决方案。