在 Selenium 中,sendKeys() 和 setValue() 方法到底有何不同?

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()。有谁知道幕后到底发生了什么?

Deb*_*anB 1

发送密钥()

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方法。如果属性已经存在,则更新值;否则,将添加具有指定名称和值的新属性。