selenium - 在 naukri 中,未单击注销,而是单击了其他链接
问题描述
我在 Naukri 站点中自动注销过程,使用操作类来执行,但大多数时候它会点击其他链接。请更正我的代码。
这是使用的网站
下面的代码:
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);
}
解决方案
推荐阅读
- c# - 使用 HostedService [ASP.NET CORE 3.1.0 C#] 运行 SQL 脚本 (Transact-SQL)
- python - matlab和python之间数据转换的差异
- jquery - 当行中达到值时,Datatable jquery调用php
- python - 使用 python 和 OpenCV 计算图像上的单元格
- python - Reg FLASK 环境设置和虚拟环境设置
- java - 远程 JVM 的 Java Mission Control(飞行记录器)内存/活动对象视图空白
- linux-kernel - 如何在 Banana PI M2 Zero 中添加缺失的内核头文件来构建内核模块?
- php - 使用 PayPal API 兑现虚拟信用
- typescript - 返回相同 T 或不同 R 值的通用函数不能接受高阶函数 '( i : T ) => i' 作为默认参数值
- memory-management - 在 x86 内核中删除恒等映射的问题