使用Selenium WebDriver的链接单击给出超时错误,否则在浏览器上链接可以正常工作

时间:2019-03-25 13:56:11

标签: selenium selenium-webdriver selenium-chromedriver

我正在尝试使用硒中的Testng编写一段代码,问题是当我尝试单击链接时,代码变得无响应并给出错误-超时从渲染器接收消息

尝试使用driver.get(“ https://infostore.saiglobal.com/”)代替driver.findElement(By.linkText(“ Infostore”))。click();仍然不响应-无法定向到网页-https://infostore.saiglobal.com/

@Test
public void testSai() throws Exception {

    driver.get("https://www.saiglobal.com/"); //open homepage
    driver.findElement(By.id("CybotCookiebotDialogBodyButtonAccept")).click(); //accept cookie
    driver.findElement(By.cssSelector("#sai-header > div > div.main-nav > div.store-box > div")).click(); //click on Login to open list
    sleep(2);
    driver.findElement(By.linkText("Infostore")).click(); //click on infostore to be redirected to https://infostore.saiglobal.com/
    System.out.println(driver.getCurrentUrl());

2 个答案:

答案 0 :(得分:1)

是的,我已经检查了此问题,如果您希望得到此解决方案,则可以使用一种解决方法。尝试以下代码。

  1. 从链接元素中获取href属性值。
  2. 删除所有cookie。
  3. driver.navigate()。to(URL);

    public static void main(String [] args){

        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "\\Executables\\Chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        WebDriverWait wait = new WebDriverWait(driver, 5);
        Actions actions = new Actions(driver);
        driver.get("https://www.saiglobal.com/");       
        driver.findElement(By.id("CybotCookiebotDialogBodyButtonAccept")).click();
        WebElement element=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='desktop-login']")));
        actions.moveToElement(element).build().perform();
        WebElement element1=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='desktop-login']/ul/li/a[contains(text(),'Infostore')]")));
        String str1=element1.getAttribute("href");
        driver.manage().deleteAllCookies();
        driver.navigate().to(str1);
        System.out.println(driver.getCurrentUrl());
    

    }

答案 1 :(得分:0)

这似乎是Selenium的一个错误,开发人员已经处理了一年多。他们从来没有真正给出导致它或如何解决它的具体答案。

第一个调用端口是确保您的浏览器和Selenium兼容。尝试打开一个您知道可以使用的其他URL,如果错误仍然存​​在,则可能是硒和Web浏览器的兼容性存在错误。如果有效,则说明您的网站有问题。

作为参考,我使用Python Selenium打开了您的网站,并且在加载或与元素交互方面没有任何问题。因此,该错误是所用软件的本地错误。

该问题也可能是由睡眠引起的(不知道为什么),因此请尝试消除任何睡眠,看看是否可以解决此问题。