对于不同的浏览器,xpath是否有所不同?

OPT*_*MUS 5 selenium selenium-webdriver

我有一个非常有趣的问题。我正在通过xpath获取价值。

例如

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

在firefox和Chrome中,它给出相同的文本,而在IE中,它给出不同的文本。

各种浏览器的xpath之间是否有任何区别,或者我没有得到其他问题。

And*_*ejs 6

此处阅读有关Selenium如何处理Xpath的信息

在Chrome和Firefox,我右键单击相同的DOM元素(如描述在这里),选择“复制XPath”,这是我得到了什么:

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

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

(一个具有属性值,另一个(FF)是绝对路径,这表明FF无法理解Crhome生成的Xpath)

因此,出于硒测试的目的,这在浏览器之间很重要。(我没有在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();
        }
Run Code Online (Sandbox Code Playgroud)

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


bit*_*bit -2

不会。XPath 在任何地方都以相同的方式解释。

您可能想检查 getText() 方法。

或者您可能想检查您是否在 IE 中登录了某个帐户(而不是在 chrome/FF 中),反之亦然。EG:您将获得 google.com 与 google.com 不同的 DOM(登录到 google 帐户)


归档时间:

查看次数:

7884 次

最近记录:

7 年,4 月 前