setAttribute() method for WebElement

本文关键字:for WebElement method setAttribute | 更新日期: 2023-09-27 18:32:50

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

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

setAttribute() method for WebElement

在检查了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")

他们使用的是 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);
}