2015-11-03 60 views
0

我怎样才能得到webelement基于类_3d5d类中的数据键点击?更准确地说,如果用户输入值2002,它将会有一个错误告诉用户“没有这一年,请再次输入”,并允许他重新输入值。如果键入的值与数据类型匹配,则会单击该元素。从萤火虫点击发现硒元素webelement

<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片段这就是我试图和它点击任何一年的用户输入。然而,这种解决方案在编码年份被硬编码。那么,有没有一种方法可以让年份被检索,如果它在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(); 
     } 
+0

你尝试过什么,什么结果呢?正如你在学校所做的那样,请展示你的工作。 :)这是在SO上获得问题的过程中的一部分。这对你很有帮助,因为它会迫使你调查自己的问题并思考问题。这也向读者证明你做了功课,并做出了合理的尝试来回答你自己的问题。第三,它可以帮助读者找到和诊断问题,为您提供更好的答案,减少浪费时间。 – JeffC

+0

@JeffC感谢您的建议,我编辑并显示了我的工作,如上所示。 –

+0

xpath不工作吗? –

回答

0

试试这个:

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!"); 
}