簡體   English   中英

使用python和硒替換網頁上的占位符文本?

[英]Replace placeholder text on a webpage using python and selenium?

我要替換文本的元素:

<input tabindex="1" style="padding-left:119px!important;width:318px!important;background-color:#fff;outline: none;box-sizing: inherit;" id="email" name="mobile" placeholder="Enter your Mobile Number" class="un_s un1_s" value="" onblur="remove_border();" type="text" maxlength="20">

我嘗試了各種方法(我想過了,谷歌都想過)來替換placeholder文本。 后來出現了很多錯誤,我想因為焦點已經在文本框中了(我想在其中輸入文本可能只是send_keys就可以了。沒有。有人可以幫我解釋一下這個概念或指向我的地方嗎?可能會讀到我做錯了什么?

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chrome_path = r"C:\Users\-------\Desktop\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get("SAMPLE WEBSITE URL")  #sorry had to remove the link :(
driver.maximize_window()

action = webdriver.ActionChains(driver)
elm = driver.find_element_by_id("user_sign_in").click()

inputElement = driver.find_element_by_xpath('//*[@id="lfm"]/div[1]/div[2]')     #driver.find_elements_by_xpath("//*[contains(text(), 'Enter your Mobile Number')]")     
#driver.find_element_by_id("mobile")
inputElement.send_keys('1234567890')
inputElement.submit()


#//*[@id="lfm"]/div[1]/div[2] xpath id for the mobile number element
#code below this is not working, for move mouse
#action = webdriver.ActionChains(driver)
#action.move_to_element((By.XPATH, '//*[@id="user_sign_in"]')).perform()



#For moving the mouse to sign in: Tried the ones below and they didn't work either
#driver.move_to_element(By.XPATH, '//*[@id="user_sign_in"]')
#login_menu = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="user_sign_in"]')))
#ActionChains(driver).move_to_element(sign_in).perform()

錯誤:

追溯(最近一次通話最近):文件“ C:/ Python34 / Selenium 2nd Trial.py”,inputElement.send_keys('9810307369')中的第16行,文件“ C:\\ Python34 \\ lib \\ site-packages \\ selenium \\ webdriver \\ remote \\ webelement.py”,第322行,位於send_keys self._execute(Command.SEND_KEYS_TO_ELEMENT,{'value':keys_to_typing(value)})文件“ C:\\ Python34 \\ lib \\ site-packages \\ selenium \\ webdriver \\ remote \\ webelement.py“,第457行,_execute返回self._parent.execute(命令,參數)文件“ C:\\ Python34 \\ lib \\ site-packages \\ selenium \\ webdriver \\ remote \\ webdriver.py”,第233行,執行self.error_handler.check_response(response)文件“ C:\\ Python34 \\ lib \\ site-packages \\ selenium \\ webdriver \\ remote \\ errorhandler.py”,第194行,在check_response中引發exception_class(消息,屏幕,stacktrace)selenium.common .exceptions.WebDriverException:消息:未知錯誤:無法聚焦元素(會話信息:chrome = 55.0.2883.87)(驅動程序信息:chromedriver = 2.27.440174(e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform = Windows NT 10.0.14393 x86_64)

您正在嘗試將鍵發送到div元素,但打算使用input元素:

inputElement = driver.find_element_by_id('email')   
inputElement.send_keys('1234567890')
inputElement.submit()

並且,請注意頁面可能需要花費一些時間才能加載,並且可能會有視覺效果阻止元素定位或可交互。 如果是這種情況,請在適當的“預期條件”下使用WebDriverWait以確保元素可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM