如何使用xpath返回页面上所有元素的列表

时间:2018-07-19 16:52:46

标签: appium

这行代码

List<WebElement> els = user.mDriver.findElements(By.xpath("//*"))

填充页面上所有元素的列表吗?

//*的语法正确吗?

3 个答案:

答案 0 :(得分:0)

以下是示例,但建议您不要使用此设计,请尝试使用较小范围的元素,而不要使用完整页面。

List<WebElement> listElements = driver.findElements(By.cssSelector("*"));

List<WebElement> listElements = driver.findElements(By.xpath("*"))

List<WebElement> listElements = driver.findElements(By.tagName("html"))

希望这会有所帮助,

答案 1 :(得分:0)

是xpath // *将返回网页的所有元素。 //表示相对xpath,*表示匹配任何节点 但是是的,如上面建议的那样,请使用较低的范围以查看元素。 尝试打印返回的Webelements的大小/计数或打印少量元素的文本

import { BrowserRouter as Router, Route } from "react-router-dom";

ReactDOM.render(
    <Router history={browserHistory}>
        <Route path="/" component={App} />
        <Route path="/login" component={Login} />
    </Router>,
    document.getElementById('root')
);

registerServiceWorker();

答案 2 :(得分:0)

如果使用的是ruby,则可以调用ruby块来循环所有共享相似xpath或id的元素。

`$driver.find_elements(xpath: 'xpathname').each do |xpath|
   puts xpath.text
   puts xpath.id
   puts xpath.value
   puts xpath.checked?
end`