Selenium webdriver を使用しています。ファイルからリンクの xpath を読み取り、リンクが Web ページに存在するかどうかを検索する必要があります。存在する場合は、それをクリックします。それでおしまい!!
リンク用のファイルはこちら
link1 //a[contains(text(), 'Volunteer Registration')]/@href
link2 //a[contains(text(), 'Sign Up')]/@href
link3 //a[contains(text(), 'Register/sign Up')]/@href
同様に、1 つのリンクとそれに関連付けられた xpath を読み取る 1 つのファイルがあり、その Xpath に基づいて、リンクが Web ページに存在するかどうかを検索します。
私が書いたコードは次のとおりです。
テキスト ファイルから 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 関連リンクが Web ページに存在するかどうかを検索するメソッドを作成したいと思います。
それを手伝ってください..
ロジックは次のようなものです
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();
}
しかし、私はそれについて確信が持てません。この機能が適切である場合も、アプローチが正しいかどうか教えてください。コードを実装するためのより良い方法を提案してください。
ありがとう!!