如何在selenium中获取屏幕的所有元素ID?
请参阅此截图
每次加载页面时,元素ID都会发生变化。我使用了包含@ id,start-with @ id,但它每次都不起作用。现在我想从网页上获取所有元素ID,因此我可以选择确切的元素。 我的网页包含输入文字,按钮,下拉列表。
答案 0 :(得分:-1)
使用Xpath代替cssSelector。如果您坚持将所有页面ID都知道为java中的String列表,请尝试执行javascript函数。
// The Firefox driver supports javascript
WebDriver driver = new FirefoxDriver();
// Go to the Google Suggest home page
driver.get("http://www.google.com/webhp?complete=1&hl=en");
ArrayList ids = (ArrayList)((JavascriptExecutor) driver).executeScript(
" var allElements = document.getElementsByTagName('*'); var allIds = []; "
+ " for (var i = 0, n = allElements.length; i < n; ++i) { "
+ " var el = allElements[i]; "
+ " if (el.id) { allIds.push(el.id); } } return allIds; "
);
此致 艾伦梅希奥 英国伦敦