![](/img/trans.png)
[英]Clicking the webelement in dropdown menu with Selenium / Java
[英]clicking on webelement found with selenium java
如何獲得基於_3d5d
類中的數據鍵單擊的webelement? 更確切地說,如果用戶輸入值2002,則會出現一個錯誤,告訴用戶“沒有年份,請再次輸入”,並允許他重新輸入該值。 如果鍵入的值與數據類型匹配,它將單擊該元素。
螢火蟲的html片段
<div class="_5ay5">
<div class="_18fs">
<div id="PageScrubberPagelet_153681831442414"
data-referrer="PageScrubberPagelet_153681831442414">
<div class="_4vm5 _5ay5">
<ul id="u_0_62">
<li class="_3d5d">
<a id="u_0_5x" class="_3d5b" role="button" href="#"
data-key="recent">Recent</a>
</li>
<li class="_3d5d">
<a id="u_0_5y" class="_3d5b _-fk" role="button"
href="#" data-key="year_2015">2015</a>
</li>
<li class="_3d5d">
<a id="u_0_5z" class="_3d5b" role="button" href="#"
data-key="year_2014">2014</a>
</li>
<li class="_3d5d">
<a id="u_0_60" class="_3d5b" role="button" href="#"
data-key="year_2013">2013</a>
</li>
這是我嘗試過的方法,它會在用戶輸入的任何年份單擊。 但是,此解決方案是硬編碼的,要在其中搜索年份。 因此,有沒有一種方法可以讓年份(如果它在html中可用)進行檢索? 另外,如果沒有這樣的年份,則允許用戶重新輸入。
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a year (YYYY): ");
String year = reader.next(); // Scans the next token of the input as an int.
if (year.contains("recent")){
WebElement recent = dr.findElement(By.xpath("//a[contains(@data-key,'recent')]"));
recent.click();
}
else if (year.contains("2015")){
WebElement year_2015 = dr.findElement(By.xpath("//a[contains(@data-key,'2015')]"));
year_2015.click();
}
else if (year.contains("2014")){
WebElement year_2014 = dr.findElement(By.xpath("//a[contains(@data-key,'2014')]"));
year_2014.click();
}
else if (year.contains("2013")){
WebElement year_2013 = dr.findElement(By.xpath("//a[contains(@data-key,'2013')]"));
year_2013.click();
}
嘗試這個:
import org.openqa.selenium.NoSuchElementException;
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a year (YYYY): ");
String year = reader.nextInt();
try {
WebElement yearButton = dr.findElement(By.xpath("//a[contains(@data-key,'" + year + "')]"));
yearButton.click();
} catch(NoSuchElementException e) {
System.out.println("Element does not exist!");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.