首页 > 用Firefox开发基于Selenium WebDriver的Java程序登录百度知道时程序卡住

用Firefox开发基于Selenium WebDriver的Java程序登录百度知道时程序卡住

package simulators;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class BaiduZhidaoSimulator {

    public static void main(String[] args) throws Exception{
        System.setProperty("webdriver.firefox.bin",
            "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
        WebDriver driver = new FirefoxDriver();
        String baseUrl = "http://zhidao.baidu.com";
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        driver.get(baseUrl + "/");
        driver.findElement(By.id("userbar-login")).click();

        Thread.sleep(2000);
        //卡在这儿
        driver.findElement(By.id("TANGRAM__PSP_8__userName")).clear(); 
        driver.findElement(By.id("TANGRAM__PSP_8__userName"))
              .sendKeys("myusername");
        driver.findElement(By.id("TANGRAM__PSP_8__password")).clear();
        driver.findElement(By.id("TANGRAM__PSP_8__password"))
              .sendKeys("mypassword");
        driver.findElement(By.id("TANGRAM__PSP_8__submit")).click();

        // "去签到"或者"已签到"的按钮的cssSelector都是a.go-sign-in
        Thread.sleep(3000);
        driver.findElement(By.cssSelector("a.go-sign-in")).click();

        String currentSignStatus = driver.findElement(
        By.cssSelector("a.go-sign-in")).getText();
        System.out.println("currentSignStatus="+currentSignStatus);
        //"点击签到"按钮
        driver.findElement(By.id("sign-in-btn")).click();

        driver.quit();
    }

}

我用Selenium WebDrvier写的百度知道的模拟登陆程序,用的是Firefox的FirefoxDriver,这个程序打开了登录窗口,但卡住在了

driver.findElement(By.id("TANGRAM__PSP_8__userName")).clear(); 

这行代码之前(就是注释里“//卡住”的地方),无限等待,没有输入用户名。
按说即使找不到该元素也应该在10秒后超时抛出异常,
请教这是为什么?谁能帮忙调试一下呢,谢谢了.


请参考 使用Selenium模拟用户登录支付宝账户查询交易详情

你这种情况未必会抛出异常,建议可以换个浏览器测试,这种情况需要慢慢排查,包括排查父元素的style属性以及使用until方法测试。

【热门文章】
【热门文章】