WebElement的setAttribute()方法

Guy*_*Guy 3 c# python java selenium selenium-webdriver

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

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

ale*_*cxe 8

在检查了selenium Python API文档源代码之后,我可以得出结论 - 没有这样的方法.而且,WebDriver规范本身并没有任何内容.

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

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


Ale*_*ard 5

他们正在使用 JavascriptExecutor 类。

IE

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

或扩展方法

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