如何设置 WebElement 的 id 属性?

How to set the id attribute of a WebElement?

根据 selenium API 文档,有一个函数 getAttribute 但没有 setAttribute

理想情况下,我希望能够做到以下几点:

element.set_attribute('id', 'abcd')

我想实现的是在测试时设置一个WebElement的id。

我正在使用驱动程序 2.44,它不支持带有参数 execute_script

您不能使用 Selenium 设置元素的属性。它主要用于自动化 Web 应用程序以进行测试。

Selenium 确实允许在网页上执行 javascript。

参见以下示例:

你可以执行任意javascript来查找一个元素,只要你return一个DOM元素,它就会自动转换为WebElement对象。

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.cheese')[0]");

查找页面上每个标签的所有输入元素:

List<WebElement> labels = driver.findElements(By.tagName("label"));
List<WebElement> inputs = (List<WebElement>) ((JavascriptExecutor)driver).executeScript(
    "var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){" +
    "inputs.push(document.getElementById(labels[i].getAttribute('for'))); } return inputs;", labels);

有关更多信息,您可以浏览 Selenium Documentation ,非常精确。