Selenium 如何获取所有元素id';硒屏的表面

Selenium 如何获取所有元素id';硒屏的表面,selenium,Selenium,如何在selenium中获取屏幕的所有元素id 请参考此屏幕截图 每次加载页面时都会更改元素ID。我曾经contains@id,开始-with@id,但并非每次都有效。现在,我想从网页中获取所有元素id,以便选择准确的元素。 我的网页包含输入文本、按钮和下拉列表。请改用Xpath或cssSelector。如果您坚持认为所有页面ID都是java中的字符串列表,请尝试执行javascript函数 // The Firefox driver supports javascript W

如何在selenium中获取屏幕的所有元素id

请参考此屏幕截图

每次加载页面时都会更改元素ID。我曾经contains@id,开始-with@id,但并非每次都有效。现在,我想从网页中获取所有元素id,以便选择准确的元素。
我的网页包含输入文本、按钮和下拉列表。

请改用Xpath或cssSelector。如果您坚持认为所有页面ID都是java中的字符串列表,请尝试执行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; "
              );
//Firefox驱动程序支持javascript
WebDriver=newfirefoxdriver();
//转到谷歌建议主页
驱动程序。获取(“http://www.google.com/webhp?complete=1&hl=en");
ArrayList ID=(ArrayList)((JavascriptExecutor)驱动程序).executeScript(
“var allegements=document.getElementsByTagName('*');var allIds=[];”
+对于(var i=0,n=allegements.length;i
问候,, 阿兰美雄
英国伦敦

请添加您的研究、代码或错误消息,以便人们能够帮助您解决问题。好的,你在页面上得到了所有的id,那么你怎么知道你应该使用什么id呢?如果您确实有办法决定应该使用哪个id,那么同样的方法应该允许您选择所需的元素,而不必依赖id。这就是你应该做的。