当前位置: 首页 > 知识库问答 >
问题:

selenium webdriver中的if条件获取错误

马泰
2023-03-14
    //extract the link texts of each link element

    for (WebElement Page3 : linkElements3) 
    {
        linkTitles3[k] = Page3.getText();
        k++;
    }

    //test each link
    for (String t : linkTitles3) 
    {
            // Titles Click 
            driver.findElement(By.linkText(t)).click();
            System.out.println("\n"+ driver.getTitle());

            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

            if(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).isDisplayed())
            {
                driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).click();     
                driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
                Thread.sleep(4000);  

                System.out.println(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/dl/dd[3]/a")).getText());
                System.out.println(driver.getCurrentUrl());
                driver.navigate().back();
                driver.navigate().back();
            }
            else
            {
                System.out.println("No Teaching Notes Present");
                driver.navigate().back();

            }
    }

错误:线程“main”组织中出现异常。openqa。硒。NoSuchElementException:无法定位元素:{“method”:“xpath”,“selector”:“//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a”}

共有1个答案

左丘元徽
2023-03-14

if/fe部分包装在try catch块中。因为如果页面中没有具有给定定位器的元素可用,selenium将通过异常。

try{
if(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).isDisplayed())
        {
            driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).click();     
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
            Thread.sleep(4000);  

            System.out.println(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/dl/dd[3]/a")).getText());
            System.out.println(driver.getCurrentUrl());
            driver.navigate().back();
            driver.navigate().back();
        }
        else
        {
            System.out.println("No Teaching Notes Present");
            driver.navigate().back();

        }
}catch(Exception e){
  System.out.println("No Teaching Notes Present");
            driver.navigate().back();
 }

否则,您也可以使用isPresent()而不是isDisplayed()

 类似资料:
  • 我只是想把字符串按降序排序。用户提供的输入为10,a,1,#,15,。,6输出必须为10,a,15,#,6,。,1我已经试过了。 在if语句中,我得到错误。错误:-操作员

  • 我有两张桌子“table1”和“table2”。对于表1中的每一行,表2中可以有多行 和 然后我创建了这样的存储库 这将给出表1中按公司ID列出的行列表,以及表2中具有相应供应商ID的行列表。 到目前为止,我的实现工作正常。 答案是 目前,我以companyId作为输入,并给出了上述响应。现在我想把cityId作为一个输入。因此,表2的输出应该只包含给定cityId的详细信息。 那么,有谁能帮助我

  • 我目前正在了解React Native中的if-else if-else语句的语法。下面是我理解的一个简单的if-else条件: 但是,当添加另一个条件来生成if-else if-else语句时,我遇到了问题。 如果有人能指出我的缺点,我将不胜感激!

  • 我有一个简单的角度/html代码,其中有一个表,每个

  • 我是thymeleaf的新手,在执行if条件时遇到了问题。我编写的代码是 问题是这段代码写完后,web页面会不断加载。谁能告诉我执行这个操作的正确方法。

  • 下面是运行服务器时的完整错误信息 请帮我解决这个问题,提前谢谢