2015-04-01 122 views
0

据硒API文档,还有一个功能getAttribute但没有setAttribute如何设置WebElement的id属性?

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

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

我想实现的是设置测试期间WebElement的ID。

我使用的驱动器2.44,它不带有参数

+0

你能提供一些你正在处理的元素的HTML吗? – Saifur 2015-04-01 01:09:34

回答

-1

你不能设置使用硒元素的属性支持execute_script。主要是为了测试目的自动化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 ,这是非常精确的。