如何设置 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
,非常精确。
根据 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 ,非常精确。