Selenium_按鈕的點擊、文本框的輸入和清除操作(3)


from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com")

# 定位元素
input_box = driver.find_element_by_id("kw")
search_btn = driver.find_element_by_id("su")

# sen_keys:文本框輸入內容操作
input_box.send_keys("selenium")

# click:按鈕點擊操作
search_btn.click()

# clear:文本框清除內容操作
input_box.clear()

driver.close()

使用selenium的 send_keys 方法能夠滿足大多數情況的輸入操作,但是在輸入內容很多的情況下,使用該方法會消耗很多時間。

此時可以使用selenium執行js的 innerHTML方法能快速輸入內容。

但是使用js的方法輸入內容有一定缺陷性,它對常見  input標簽類型的輸入框無效,因為該js方法是向標簽插入文本內容,而input標簽的輸入內容是保存在它的value屬性中,所以該js方法只對富文本框生效。

 

創建一個簡單的html界面

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>test</title>
    
</head>

<body bgcolor="burlywood">
    <div>
        <textarea id="kw1" cols="30" rows="10"></textarea>
        <hr>
        <textarea id="kw2" cols="30" rows="10"></textarea>
        <hr>
        <input id="kw3" value="">
    </div>
    
</body>

</html>

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("file:///E:/test.html")
search_str = "超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超" \
             "長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長" \
             "內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容" \
             "超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長" \
             "內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內" \
             "容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容" \
             "超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超" \
             "長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長" \
             "內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內" \
             "容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容" \
             "超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容超長內容"

# 使用innerHTML方式輸入
js = f'document.getElementById("kw1").innerHTML="{search_str}";'
driver.execute_script(js)

# 使用send_keys方式輸入
driver.find_element_by_id('kw2').send_keys(search_str)

# 在input框中使用innerHTML方式輸入
js = f'document.getElementById("kw3").innerHTML="{search_str}";'
driver.execute_script(js)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM