selenium – xpath对于不同的浏览器是不同的?

我有一个非常有趣的问题.我有一个xpath,我通过它检索值.

防爆.

System.out.print(driver.findElement(By.xpath("//*[@id='error-box']/ul/li")).getText().toString());

在Firefox和Chrome中,它提供相同的文本,而在IE中则提供不同的文本.

各种浏览器的xpath之间有什么区别,或者是我没有得到的其他问题.

最佳答案 阅读Selenium如何处理Xpath
here.

在Chrome和Firefox中,我右键单击相同的DOM元素(如here所述),选择“复制Xpath”,这就是我得到的:

Chrome:// * [@ id =“js-pjax-container”] / div2 / div2 / form / button

Firefox(带Firebug):/ html / body / div [4] / div2 / div2 / div2 / form / button

(一个是属性值,另一个是(FF)是绝对路径,这表明FF不了解Crhome生成的Xpath)

因此,对于Selenium测试目的,它在浏览器之间很重要. (我没有在IE上测试)

我跑了这个

 @Test
        public void testGitHubButton(){
        WebDriver driver = new FirefoxDriver();
        driver.get("https://github.com/");
       String signup = driver.findElement(By.xpath("/html/body/div[4]/div[1]/div[1]/div[1]/form/button")).getText();
           Assert.assertEquals("Testing for string equality", "Sign up for GitHub", signup );
        driver.close();
        driver.quit();
        }

测试通过了.如果我复制粘贴Chrome的Xpath,它将失败.

点赞