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

无法单击网页中的任何链接

晋言
2023-03-14

我正在使用selenium网络驱动程序来自动化网页。我的selenium代码没有识别链接。我收到以下错误。

线程“main”组织中出现异常。openqa。硒。NoSuchElementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“/html/body/font/font/b/a[2]”(会话信息:chrome=44.0.2403.89)

这是我正在使用的代码。

public static void main(String[] args) 
{       
    System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\chromedriver.exe");

         WebDriver driver = new ChromeDriver(); 
         driver.get("url");
        driver.findElement(By.xpath("/html/body/font/font/b/a[2]")).click();
}

提前谢谢

共有2个答案

和飞翔
2023-03-14

有两种可能的情况

1) 您可能键入了错误的url

2) 预期的元素xpath错误。

请验证您的xpath

本手册:https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=en

public static void main(String[] args) {
  System.setProperty("webdriver.chrome.driver", "C:\Program Files (x86)\Google\Chrome\chromedriver.exe");
  WebDriver driver = new ChromeDriver();
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  driver.get("Valid url");

 driver.findElement(By.xpath("your valid XPATH")).click();

  driver.close();
 }
何超英
2023-03-14

如果您将NoSuchElementException作为您提供的异常,可能有以下原因:-

>

  • 可能您使用不正确的xpath进行定位,因此您需要共享超文本标记语言以获得更好的定位器解决方案。

    可能是在您要查找元素时,它不会出现在DOM上,因此您应该实现WebDriverWait,直到元素可见并可单击,如下所示:-

    WebDriverWait wait = new WebDriverWait(driver, 10);
    WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Duty Office")));
    el.click();
    

    可能此元素在任何frameiframe中。如果是,您需要在找到元素之前切换该frameiframe如下:-

    WebDriverWait wait = new WebDriverWait(driver, 10);
    
    //Find frame or iframe and switch
    wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("your frame id or name"));
    //Now find the element 
    WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Duty Office")));
    el.click();
    
    //Once all your stuff done with this frame need to switch back to default
    driver.switchTo().defaultContent();
    

    希望对您有所帮助……:)

  •  类似资料:
    • 但它不起作用并抛出NoSuchElementException NoSuChelementException:消息:找不到元素:{“Method”:“XPath”,“Selector”:“//A[@href=\”WLSwitchInterFace0.wl\“]”}

    • 问题内容: Selenium WebDriver出现问题。我尝试单击窗口页面外部的链接(您需要向上滚动才能看到它)。我当前的代码是相当标准的: 我知道我可以向上滚动,并且在这种情况下可以使用。但是,如果您有很长的项目列表,则不必知道向下滚动的距离。 有什么方法可以单击页面可见部分之外的链接(但是如果滚动,该链接将可见)? 附带说明,我使用的是Firefox,但我计划也使用IE7 / 8/9和Chr

    • 当我运行此代码时,会出现以下错误:- 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 我也尝试了含蓄的等待,但得到了同样的问题。

    • 我突然觉得点击链接有问题。这是以前的工作,但现在不是,我不能找出什么是错的。 这是链接的定义方式: 这是我点击链接的代码。其中有几个,我想做的是获取所有这些,这样我就可以遍历所有这些。 它没有通过List语句。它就坐在那里。有什么想法吗?

    • 问题内容: 今天,我正在尝试测试一个可在Google主页(www.google.co.in)上使用的gmail链接。我能够启动fierfox窗口,并且能够执行将我带到Google主页的第一步,但是在此之后什么都没有发生,我也没有遇到任何运行时错误或日食异常。不知道webdriver发生了什么。我遇到了我已经在stakwave上发布的另一个程序的问题,因此,如果可以,请查看此链接- 为什么我的测试抛

    • 问题内容: 我需要为移动设备构建一个网页。我只有一件事还没有弄清楚:如何通过单击文本触发电话? 是否可以像电子邮件标签一样输入一个特殊的URL ? 特定于设备的解决方案不是首选。 我知道iPhone会自动识别电话号码并为此创建一个链接,但是如果这也可以用于图像…以及大多数移动设备,那就太好了。 问题答案: 大多数现代设备都支持tel:方案。因此,使用它应该很好。 如果您想将其用于图像,标签可以像处