我得到一个xpath值:
//*[@id='user_change_pw_form']/div[3]/span
对于萤火虫中的相同元素我得到:
/html/body/div[2]/form/div[3]/span
为什么我必须像这样分配xpath查询以获得Selenium testcase中的同一个元素:
switch (System.getProperty("test.driver"))
{
case "chrome":
case "html":
text = driver.findElement(By.xpath("//*[@id='user_change_pw_form']/div[3]/span")).getText();
case "gecko":
text = driver.findElement(By.xpath("/html/body/div[2]/form/div[3]/span")).getText();
break;
}
虽然相应的对应方给出了错误的浏览器“无法找到元素”,但两个xpath查询都适用于两个浏览器控制台。
提前致谢!
答案 0 :(得分:0)
尝试编写自己的xPaths / CSS选择器,而不是依赖基于浏览器的选择器。这个link可以帮助您学习/编写自己的选择器。
我还建议在xpaths上使用css选择器,因为它们更具可读性。
答案 1 :(得分:0)
firefox有绝对的xpath,无法处理chrome的xpath。
感谢@noor和@Kenil Fadia