Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击SeleniumJava中找到的webelement_Java_Html_Selenium_If Statement - Fatal编程技术网

单击SeleniumJava中找到的webelement

单击SeleniumJava中找到的webelement,java,html,selenium,if-statement,Java,Html,Selenium,If Statement,如何根据类\u 3d5d中的数据键单击webelement?更准确地说,如果用户输入值2002,它将有一个错误,告诉用户“没有这样的年份,请重新输入”,并允许用户重新输入值。如果键入的值与数据类型匹配,它将单击元素 firebug的html片段 <div class="_5ay5"> <div class="_18fs"> <div id="PageScrubberPagelet_153681831442414" dat

如何根据类
\u 3d5d
中的数据键单击webelement?更准确地说,如果用户输入值2002,它将有一个错误,告诉用户“没有这样的年份,请重新输入”,并允许用户重新输入值。如果键入的值与数据类型匹配,它将单击元素

firebug的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>
试试这个:

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

你尝试过什么,结果如何?就像你在学校做的那样。。。请出示你的作品。:)这是获得问题答案的过程的一部分。它对你很有帮助,因为它迫使你调查自己的问题并仔细思考。它还向读者证明,你做了功课,并做出了合理的尝试来回答自己的问题。第三,它帮助读者找到并诊断问题,从而为您提供更好的答案,减少浪费我们的时间。@JeffC感谢您的建议,我已经编辑并展示了我的工作,如上所示。xpath不起作用吗?xpath起作用,只是我在寻找一种方法,如果用户输入与xpath匹配,它将单击xpath。在我所写的解决方案中,要求我在if-else语句中写下所有可能的年份。但如果我不知道是否还有其他年份,因此没有对其进行编码,这意味着用户不能在任何其他年份单击该元素,因为我没有将其编码为@HelpingHands
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!");
}