在Selenium中,sendKeys()和setValue()方法到底有什么不同?
我两者都用过在Selenium中,sendKeys()和setValue()方法到底有什么不同?,selenium,selenium-webdriver,sendkeys,setattribute,setvalue,Selenium,Selenium Webdriver,Sendkeys,Setattribute,Setvalue,我两者都用过 WebElement.sendKeys('') 及 以便在字段中输入文本。绝大多数情况下,它们的行为似乎是一样的,但我发现有一些情况下setValue()起作用,而sendKeys()不起作用 我在Selenium文档中只能找到sendKeys()“更准确地模拟用户输入”,然后是setValue()。有人知道引擎盖下到底发生了什么吗?sendKeys() 是用于模拟键入元素的Java方法,可以设置其值 定义: void sendKeys(java.lang.CharSeque
WebElement.sendKeys('')
及
以便在字段中输入文本。绝大多数情况下,它们的行为似乎是一样的,但我发现有一些情况下setValue()
起作用,而sendKeys()
不起作用
我在Selenium文档中只能找到sendKeys()
“更准确地模拟用户输入”,然后是setValue()
。有人知道引擎盖下到底发生了什么吗?sendKeys()
是用于模拟键入元素的Java方法,可以设置其值
- 定义:
void sendKeys(java.lang.CharSequence... keysToSend) Use this method to simulate typing into an element, which may set its value. Parameters: keysToSend - character sequence to send to the element Throws: java.lang.IllegalArgumentException - if keysToSend is null
- 用法:
driver.findElement(By.id("identifierId")).sendKeys("C.Peck@stackoverflow.com");
setValue()
方法,最接近的匹配似乎是setAttribute()
JavaScript方法
setAttribute() 是设置指定元素属性值的JavaScript方法。如果该属性已经存在,则更新该值;否则,将添加具有指定名称和值的新属性
- 语法:
Element.setAttribute(name, value);
- 例如:
- HTML:
<button>Hello World</button>
- HTML:
- 通过Java
实现:executeScript()
setValue()
而不是setAttribute()
setValue()
是在与MobileElement
交互时提供的,在功能上与sendKeys
<button>Hello World</button>
var b = document.querySelector("button");
b.setAttribute("name", "helloButton");
b.setAttribute("disabled", "");
((JavascriptExecutor)driver).executeScript("document.getElementById('elementID').setAttribute('attribute_name', 'new_value_for_element')");