我正在使用 Selenium 网络驱动程序。我必须从文件中读取链接的 xpath 并搜索链接是否存在于网页上,如果存在则单击它。而已!!
这是链接的文件
link1 //a[contains(text(), 'Volunteer Registration')]/@href
link2 //a[contains(text(), 'Sign Up')]/@href
link3 //a[contains(text(), 'Register/sign Up')]/@href
同样,我有一个文件,我将从该文件中读取一个链接及其关联的 xpath,并基于该 Xpath,我将搜索该链接是否存在于网页上。
我为此编写的代码是:
将文本文件中的数据读入 Hashtable -
public HashMap<String, String> readDataFromFile(String fileName) {
try {
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
String strLine = null;
String[] prop = null;
while ((strLine = br.readLine()) != null) {
prop = strLine.split("\t");
recruiters.put(prop[0], prop[1]);
}
br.close();
fr.close();
} catch (Exception exception) {
System.out.println("Unable to read data from recruiter file: " + exception.getMessage());
}
return recruiters;
}
基于键从哈希表返回 xpath 值的方法
public String findValue(String Name){
for (String s: HashTable.entrySet()) {
Map.Entry entry = (Map.Entry) s;
if(entry.getKey().equale(Name))
{
String value= entry.getValue();
return value;
}
}
return null;
}
现在我想编写一个方法来搜索网页上是否存在与 xpath 相关的链接。
请帮我解决这个问题..
逻辑类似于
public void Search&ClickLink()
{
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for (WebElement myElement : links){
String link = myElement.getText();
System.out.println(link);
myElement.click();
driver.navigate().back();
}
但我不确定。如果此功能合适,请告诉我方法是否正确。请提出更好的方法来实现代码。
谢谢!!