如何设置WebElement的id属性?

时间:2015-04-01 00:40:13

标签: python selenium selenium-webdriver

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

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

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

我想要实现的是在测试期间设置WebElement的id。

我使用的是驱动程序2.44,并且它不支持execute_script带参数

1 个答案:

答案 0 :(得分:-1)

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

Selenium允许在网页上执行javascript。

见下面的例子:

您可以执行任意javascript来查找元素,只要您返回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 ,这是非常精确的。