有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

html如何使用以下同级在<ul JAVA内部的所有<li>中单击

我可以点击“导师”标签,但我想点击每一个李,从“导师”标签链接开始

<ul _ngcontent-cwp-c18="" class="navigation clearfix">
   <li _ngcontent-cwp-c18="" routerlinkactive="current" class=""><a _ngcontent-cwp-c18="" href="#/index">Home</a></li>
   <li _ngcontent-cwp-c18=""><a _ngcontent-cwp-c18="" href="https://courses.rahulshettyacademy.com/courses">Courses</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current" class="current"><a _ngcontent-cwp-c18="" href="#/mentorship">Mentorship</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current"><a _ngcontent-cwp-c18="" href="#/practice-project">Practice Projects</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current"><a _ngcontent-cwp-c18="" href="#/consulting">Consulting</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current"><a _ngcontent-cwp-c18="" href="#/part-time-jobs">Earn</a></li>
   <li _ngcontent-cwp-c18=""><a _ngcontent-cwp-c18="" href="http://www.qaclickacademy.com/blog/">Articles</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current"><a _ngcontent-cwp-c18="" href="#/about-my-mission">About</a></li>
   <li _ngcontent-cwp-c18="" routerlinkactive="current"><a _ngcontent-cwp-c18="" href="#/contact-us">Contact</a></li>
</ul>

这就是我所尝试的:

driver.get("http://www.qaclickacademy.com/");
        driver.findElement(By.xpath("//ul[@class='nav navbar-nav navbar-right']//a[contains(text(),'Interview Guide')]")).click();
        //mentorship
        driver.findElementByXPath("//div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]").click();
        //practice projects
        driver.findElementByXPath("//div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following-sibling::li[1]").click();
        //consulting
        driver.findElementByXPath("//div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following-sibling::li[2]").click();
        //earn
        driver.findElementByXPath("//div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following-sibling::li[3]").click();

请问,我如何使用以下兄弟姐妹点击每一行,从一个特定的开始


共 (2) 个答案

  1. # 1 楼答案

    首先,您必须找到紧跟在Mentorship之后的列表计数,然后您可以迭代一个接一个地单击。编写以下代码,它工作正常

    WebDriver driver = new ChromeDriver();
    driver.navigate().to("http://www.qaclickacademy.com");
    driver.manage().timeouts().implicitlyWait(30L, TimeUnit.SECONDS);
    driver.findElement(By.xpath("//ul[@class='nav navbar-nav navbar-right']/li/a[contains(text(),'Interview Guide')]")).click();
    int count = driver.findElements(By.xpath("//div[@class='nav-outer clearfix']//li[a[contains(text(),'Mentorship')]]/following-sibling::li")).size();
    for (int i = 1; i <= count; i++) {
       driver.findElement(By.xpath("//div[@class='nav-outer clearfix']//li[a[contains(text(),'Mentorship')]]/following-sibling::li[" + i + "]")).click();
    }
    
  2. # 2 楼答案

    您需要选择父项(..)在使用following-sibling之前,对a元素的。您可以使用:

    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/../following-sibling::li[1]/a
    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/../following-sibling::li[2]/a
    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/../following-sibling::li[3]/a
    

    或者,更短但更消耗的形式:

    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following::a[1]
    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following::a[2]
    //div[@class='nav-outer clearfix']//a[contains(text(),'Mentorship')]/following::a[3]