首页 > 解决方案 > 在 naukri 中,未单击注销,而是单击了其他链接

问题描述

我在 Naukri 站点中自动注销过程,使用操作类来执行,但大多数时候它会点击其他链接。请更正我的代码。

这是使用的网站

DOM 树

下面的代码:

RemoteWebDriver driver;
WebDriverWait wait;
@Test
public void logout() throws InterruptedException{
    System.setProperty("webdriver.chrome.driver", "./drivers/chromedriver.exe");
     driver = new ChromeDriver();
     wait = new WebDriverWait(driver,20);
    driver.manage().window().maximize();
      driver.get("https://www.naukri.com/nlogin/login");
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      String parentWindow = driver.getWindowHandle();
      WebElement google = driver.findElementByXPath("//a[@class='socialbtn google']");
      wait.until(ExpectedConditions.elementToBeClickable(google));
      google.click();
      wait.until(ExpectedConditions.numberOfWindowsToBe(2));
      Set<String> windows = driver.getWindowHandles();
      for (String eachWindow : windows) {
        if(!eachWindow.equals(parentWindow)) {
            driver.switchTo().window(eachWindow);
            gmailLogin();
        }
    }
      driver.switchTo().window(parentWindow);
      WebElement myNaukri = driver.findElementByXPath("//div[text()='My Naukri']/..");
      WebElement logout = driver.findElementByXPath("//a[text()='Logout']");
         Actions build = new Actions(driver);
         build.moveToElement(myNaukri).build().perform();
         wait.until(ExpectedConditions.elementToBeClickable(logout));
         build.click(logout).build().perform();
         Thread.sleep(5000);
         driver.close();

}

 public void gmailLogin() {
      WebElement email = driver.findElementById("identifierId");
      wait.until(ExpectedConditions.visibilityOf(email));
      email.sendKeys("emailID",Keys.ENTER);
      WebElement password = driver.findElementByName("password");
      wait.until(ExpectedConditions.visibilityOf(password));
      password.sendKeys("Password",Keys.ENTER);

  }

标签: seleniumselenium-webdriverautomationselenium-chromedriverwebdriverwait

解决方案


推荐阅读