You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java Selenium自动化脚本中绕过GoDaddy的ChromeDriver登录通知

解决ChromeDriver中GoDaddy托管Office365登录弹窗问题的可行方法

以下是几个实用的解决方案,你可以根据实际情况尝试:

1. 配置ChromeDriver参数,模拟正常用户环境并禁用弹窗

通过设置Chrome启动参数,避免被识别为自动化环境,同时禁用通知和弹窗拦截,减少干扰:

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.ArrayList;

public class EmailLoginSteps{
   public static void main(String[] args) {
      ChromeOptions options = new ChromeOptions();
      // 禁用浏览器通知
      options.addArguments("--disable-notifications");
      // 关闭弹窗拦截
      options.addArguments("--disable-popup-blocking");
      // 避免被检测为自动化工具
      options.addArguments("--disable-blink-features=AutomationControlled");
      // 设置正常的用户代理,模拟普通浏览器
      options.addArguments("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
      
      WebDriver driver = new ChromeDriver(options);
      ((JavascriptExecutor) driver).executeScript("window.open()");
      ArrayList<String> tabs = new ArrayList<>(driver.getWindowHandles());
      driver.switchTo().window(tabs.get(1));
      driver.get("https://outlook.office365.com");

      driver.findElement(By.id("i0116")).sendKeys(email+"\n");
      Thread.sleep(4000);
      driver.findElement(By.id("password")).sendKeys(password+"\n");
   }
}

2. 显式等待并定位处理GoDaddy弹窗元素

如果弹窗是页面内的HTML元素,使用显式等待定位弹窗的确认/跳过按钮,主动点击关闭:

import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;

// 在输入密码并等待后,添加以下代码处理弹窗
WebDriverWait wait = new WebDriverWait(driver, 15);
// 替换为弹窗中实际的按钮选择器,比如根据文本或ID定位
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(), '继续')]"))).click();

注意:需要根据截图中弹窗的实际HTML结构调整选择器,比如查看弹窗按钮的ID、class或文本内容。

3. 使用Office365应用密码登录(需账户权限)

如果你的GoDaddy托管Office365账户支持应用密码,可以在GoDaddy的账户设置中生成专用应用密码,替代普通密码登录,绕过额外的验证步骤:

  1. 登录GoDaddy账户,进入Office365管理界面
  2. 找到账户安全设置,生成应用密码
  3. 在脚本中用这个应用密码替换原有的password变量

4. 导入已登录的Cookie跳过登录流程

手动登录一次邮箱后,导出登录状态的Cookie,在自动化脚本中导入Cookie,直接进入已登录状态:

import org.openqa.selenium.Cookie;
import java.util.HashSet;
import java.util.Set;

// 提前手动登录邮箱后,获取并保存Cookie列表(可通过浏览器开发者工具查看)
Set<Cookie> loginCookies = new HashSet<>();
// 示例:添加Cookie,实际需替换为你的账户Cookie
loginCookies.add(new Cookie("CookieName1", "CookieValue1", ".office365.com", "/", null));
loginCookies.add(new Cookie("CookieName2", "CookieValue2", ".office365.com", "/", null));

WebDriver driver = new ChromeDriver(options);
driver.get("https://outlook.office365.com");
// 导入Cookie
for (Cookie cookie : loginCookies) {
    driver.manage().addCookie(cookie);
}
// 刷新页面后即可保持登录状态
driver.refresh();

内容的提问来源于stack exchange,提问作者Sanchitha Jayasuriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:12:07