how to fix/control the issue "org.openqa.selenium.UnhandledAlertException"

这篇博客主要讨论了在使用Selenium进行网页自动化测试时遇到'org.openqa.selenium.UnhandledAlertException'问题的场景。作者提供了详细的系统信息,包括使用的Selenium版本、Firefox浏览器版本等,并给出了一个尝试解决该问题的代码片段,通过设置FirefoxOptions来忽略未预期的警告对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hi,

Could you please help for this, it will some times happen such issue when i selenium the website page.

## System

* Version: <!-- geckodriver version --> 0.21.0-win64
* Platform: <!-- e.g. Linux/macOS/Windows + version --> Linux 3.10.0-862.3.2.el7.x86_64
* Firefox: <!-- from the about dialogue --> 61.0.1
* Selenium: <!-- client + version --> selenium-server-standalone-3.13.0


## TestcaseException in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
**Caused by: org.openqa.selenium.UnhandledAlertException: :** 
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'hkl2005830******', ip: '130.17******', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-862.3.2.el7.x86_64', java.version: '1.8.0_171'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 61.0.1, javascriptEnabled: true, moz:accessibilityChecks: false, moz:headless: false, moz:processID: 5344, moz:profile: C:\Users\43897129\AppData\L..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: XP, platformName: XP, platformVersion: 6.3, rotatable: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, webdriver.remote.sessionid: 9f3e151c-2a5b-4022-a6d7-cd8...} Session ID: 9f3e151c-2a5b-4022-a6d7-cd8c54b6dc7d
*** Element info: {Using=id, value=ctl00_lblDisplay}
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:120)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:160)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:371)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:417)
    at org.openqa.selenium.By$ById.findElement(By.java:218)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:363)
    at com.selm_hkex$1.apply(selm_hkex.java:128)
    at com.selm_hkex$1.apply(selm_hkex.java:1)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
    at com.selm_hkex.main(selm_hkex.java:126)
    ... 5 more
 

 

 

 

 

FirefoxOptions desiredCapabilities = new FirefoxOptions();
        desiredCapabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
        RemoteWebDriver driver = null;
boolean open = true;
        while (true) {
            open = true;
            try {
                driver = new RemoteWebDriver(new URL("http://hkw20040061.hbap.adroot.hsbc:4444/wd/hub"),
                        desiredCapabilities);
                driver.get("http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main.aspx");
            } catch (Exception d) {
                if (d.getMessage().contains("Error communicating with the remote browser")) {
                    open = false;
                    Thread.sleep(30000);
                    driver.quit();
                }
            }
            if (open) {
                break;
            }
        }

        boolean sendkey = true;
        while (true) {
            sendkey = true;
            try {

                System.out.println("Page title is " + driver.getTitle() + " Start to input the page !");

                String str_y = str_date.substring(0, 4);
                String str_m = str_date.substring(4, 6);
                String str_d = str_date.substring(6, 8);
                String end_y = end_date.substring(0, 4);
                String end_m = end_date.substring(4, 6);
                String end_d = end_date.substring(6, 8);

                if ((sck_code.replaceAll("\\D", "")).length() == 5) {
                    driver.findElement(By.id("ctl00_txt_stock_code")).sendKeys(sck_code);
                    driver.findElement(By.id("ctl00_txt_stock_code")).sendKeys(sck_code);
                } else {
                    sck_code = "Allsc";
                }

                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_d")).sendKeys(str_d);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_d")).sendKeys(str_d);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_m")).sendKeys(str_m);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_m")).sendKeys(str_m);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_y")).sendKeys(str_y);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseFrom_y")).sendKeys(str_y);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_d")).sendKeys(end_d);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_d")).sendKeys(end_d);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_m")).sendKeys(end_m);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_m")).sendKeys(end_m);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_y")).sendKeys(end_y);
                driver.findElement(By.id("ctl00_sel_DateOfReleaseTo_y")).sendKeys(end_y);
                driver.findElement(By.id("aspnetForm")).submit();
            } catch (Exception c) {
                sendkey = false;
                driver.navigate().back();
            }
            if (sendkey) {
                break;
            }
        }

        (new WebDriverWait(driver, 20)).until(new ExpectedCondition<WebElement>() {
            public WebElement apply(WebDriver d) {
                return d.findElement(By.id("ctl00_lblDisplay"));
            }
        });
        String recd_empty = driver.findElement(By.id("ctl00_lblDisplay")).getText();

        System.out.println("Page title is " + driver.getTitle() + " Start to download the informations !");
        System.out.println("");

......skin......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值