根据selenium API文档,有一个函数getAttribute
,但没有setAttribute
理想情况下,我希望能够做到以下几点:
element.set_attribute('id', 'abcd')
我想要实现的是在测试期间设置WebElement的id。
我使用的是驱动程序2.44,并且它不支持execute_script
带参数
答案 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 ,这是非常精确的。