WebElement的setAttribute()方法

时间:2016-02-01 17:34:16

标签: java c# python selenium selenium-webdriver

this question中,两个答案均使用setAttribute()作为WebElement功能。但是,我无法在JavaC#Python文档中找到此方法,只能getAttribute()。尝试从C#(Visual Studio)中的WebElement对象和使用最新Selenium版本的Java(Eclipse)调用此方法产生相同的结果。

所以我的问题是,这种方法真的存在吗?

2 个答案:

答案 0 :(得分:6)

在检查了硒Python API docssource code之后,我可以得出结论 - 没有这样的方法。并且,WebDriver specification本身内部没有任何内容。

要设置属性,通常执行脚本

elm = driver.find_element_by_id("myid")
driver.execute_script("arguments[0].setAttribute(arguments[1], arguments[2]);", 
                      elm,  
                      "attr_name",
                      "attr_value")

答案 1 :(得分:4)

他们正在使用JavascriptExecutor类。

WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('//id of element').setAttribute('attr', '10')");

或扩展方法

public static void setAttribute(this IWebElement element, string value, bool clearFirst)
{
    if (clearFirst) element.Clear();
    element.SendKeys(value);
}