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

时间:2015-09-11 11:12:30

标签: selenium

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

请参阅此截图

每次加载页面时,元素ID都会发生变化。我使用了包含@ id,start-with @ id,但它每次都不起作用。现在我想从网页上获取所有元素ID,因此我可以选择确切的元素。 我的网页包含输入文字,按钮,下拉列表。

1 个答案:

答案 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; "
              );

此致 艾伦梅希奥 英国伦敦