1. 程式人生 > 程式設計 >python 解決selenium 中的 .clear()方法失效問題

python 解決selenium 中的 .clear()方法失效問題

最近在使用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(“[email protected]”) #用於在一個輸入框內輸入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()方法失效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。