51Testing软件测试论坛

标题: IE 无法定位元素,但ff可以,请高人指点,付代码 [打印本页]

作者: donkey0702    时间: 2015-6-9 17:58
标题: IE 无法定位元素,但ff可以,请高人指点,付代码
本帖最后由 donkey0702 于 2015-6-9 18:02 编辑

代码如下:
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.FindBy;


public class ClickButton {
    WebDriver driver;

    @Before
    public void setUp() throws InterruptedException {
        System.setProperty("webdriver.ie.driver", "G:\\Selenium\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
        driver.get("http://www.baidu.com");
       Thread.sleep(2000);

    }

    @Test
    public void login(){
        WebElement username;
        username=driver.findElement(By.xpath("//Input[@id='kw']"));

        Assert.assertEquals(username.getSize(),1);
        username.sendKeys("abc");

    }

    @After
    public void tearDown(){
        driver.quit();
    }



    public static void main(String[] args) throws InterruptedException {

        ClickButton a=new ClickButton();
      //  a.tearDown();
        a.setUp();
        a.login();
       // a.tearDown();
    }


}

会报错, 但ff就可以定位到,请高手指点怎么修正?谢谢!

Listening on port 38152
Jun 09, 2015 5:53:12 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Software caused connection abort: recv failed
Jun 09, 2015 5:53:12 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)
作者: joykao    时间: 2015-6-10 16:23
为什么还要加个main函数。。。。直接用junit运行呀
作者: joykao    时间: 2015-6-12 09:57
IE不支持xpath找对象不支持吧。。。
IE还没有实现DOM Level 3 XPath中定义的接口,但是它对xpath也有一定的支持,IE中的xpath功能主要对xml文档可用,对document的对象不可用。
作者: donkey0702    时间: 2015-7-3 16:36
其实是对的,我忘记保存代码了,谢谢大家的指点啊
作者: zzhengjian    时间: 2015-7-22 23:10
joykao 发表于 2015-6-12 09:57
IE不支持xpath找对象不支持吧。。。
IE还没有实现DOM Level 3 XPath中定义的接口,但是它对xpath也有一定 ...

IE 也是支持xpath的,只不过不是原生支持,是要加载wgxpath这个库去支持的。所以支持度没有其他浏览器那么好.
  // Let the wgxpath library be compiled away unless we are on IE or Android.
  // TODO: Restrict this to just IE when we drop support for Froyo.
  if (goog.userAgent.IE || goog.userAgent.product.ANDROID) {
    wgxpath.install(goog.dom.getWindow(doc));
  }
或者可以参考这里: https://github.com/SeleniumHQ/selenium/wiki/Xpath-In-WebDriver





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2