您好,登錄后才能下訂單哦!
最近在使用selenium做一個數字貨幣的自動化腳本時,遇到一個問題就是okex網站的input使用clear()方法居然無法清空,但是后來試了好多次發現方法是可以使用的,而且這個網站修改input的value也沒用,必須在文本框里修改才行,本次的目的就是要清除輸入框的默認值,然而clear()沒有反應,最后還是用了別的方法解決了問題,那就是使用鼠標雙擊事件,全選后輸入內容。
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium. webdriver.support.wait import WebDriverWait browser = webdriver.Chrome() #延時等待 wait = WebDriverWait(browser, 1) BL = str(float((X).split('%')[0]) + 0.01) #獲取節點對象 Ratio = wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="root"]/div/div/div/div[1]/div[2]/div[4]/div/div/div[2]/div/div[1]/div[3]/div[2]/input'))) #雙擊事件 ActionChains(browser).double_click(Ratio).perform() #輸入內容 Ratio.send_keys(BL)
補充知識:selenium常見方法(clear(),send_keys(),click(),submit())實例
我就廢話不多說了,大家還是直接看代碼吧~
#!/usr/bin/python # -- coding: UTF-8 -- from selenium import webdriver import time driver = webdriver.Firefox() driver.get(“https://passport.csdn.net/account/login?ref=toolbar“) driver.find_element_by_css_selector(“input#username”).clear() #清空輸入框內的提示信息,例如用戶名,密碼等提示信息,如果直接輸入內容,可能會與輸入框的默認提示信息拼接,從而造成輸入信息的錯誤,這是clear()將會變得非常有用 driver.find_element_by_css_selector(“input#username”).send_keys(“1285154416@qq.com”) #用于在一個輸入框內輸入XX內容 driver.find_element_by_css_selector(“input#password”).clear() driver.find_element_by_css_selector(“input#password”).send_keys(“123456”) driver.find_element_by_css_selector(“input.logging”).submit()#用于對信息進行提交,也可以使用click()進行代替,submit()要求提交對象是一個表單,click()更強調事件的獨立性 time.sleep(10) driver.quit()
以上這篇python 解決selenium 中的 .clear()方法失效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。