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之间是否有任何区别,或者我没有得到其他问题。
在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 次 |
| 最近记录: |