C. *_*eck 5 selenium setattribute sendkeys setvalue selenium-webdriver
我都用过
WebElement.sendKeys('')
Run Code Online (Sandbox Code Playgroud)
和
WebElement.setValue('')
Run Code Online (Sandbox Code Playgroud)
为了将文本输入到字段中。绝大多数时候,它们的行为似乎都是一样的,但我发现了一些setValue()有效但sendKeys()无效的情况。
我在 Selenium 文档中所能找到的就是sendKeys() “更准确地模仿用户输入”setValue()。有谁知道幕后到底发生了什么?
sendKeys()是来自WebElement的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
Run Code Online (Sandbox Code Playgroud)用法:
driver.findElement(By.id("identifierId")).sendKeys("C.Peck@stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)然而, Java中没有setValue()方法,最接近的匹配似乎是JavaScript方法。setAttribute()
setAttribute()是设置指定元素的属性值的JavaScript方法。如果属性已经存在,则更新值;否则,将添加具有指定名称和值的新属性。
句法:
Element.setAttribute(name, value);
Run Code Online (Sandbox Code Playgroud)例子:
HTML:
<button>Hello World</button>
Run Code Online (Sandbox Code Playgroud)JavaScript:
var b = document.querySelector("button");
b.setAttribute("name", "helloButton");
b.setAttribute("disabled", "");
Run Code Online (Sandbox Code Playgroud)通过Java 实现executeScript():
((JavascriptExecutor)driver).executeScript("document.getElementById('elementID').setAttribute('attribute_name', 'new_value_for_element')");
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4279 次 |
| 最近记录: |