我創建一個Python腳本(使用硒),其職位texts和media(images)自動。
該腳本在發布texts時成功運行,但在嘗試發布影像時無法成功。錯誤只是說
" Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="layers"]/div[2]/div/div/div/div/div/div[2]/div[2]/div"...
我使用以下代碼單擊 Twitter 媒體按鈕,以打開我的 Windows 資源管理器以準備進入我的影像檔案夾(另請參閱影像中突出顯示的媒體按鈕)。
driver.find_element(by.XPATH, image_xpath).click()
time.sleep(2)
driver.find_element(by.XPATH, image_xpath).send_keys(image)

uj5u.com熱心網友回復:
上傳一個image,如果你有一個input tagwith 屬性type作為file
您可以直接使用send_keys上傳圖片。
time.sleep(2)
driver.find_element(by.XPATH, image_xpath).send_keys("full file path of image")
我會建議誘導 ExplicitWait
wait = WebDriverWait(driver, 30)
wait.until(EC.visibility_of_element_located((By.XPATH, "image_xpath"))).send_keys("full file path of image")
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
請注意,您不應單擊按鈕來打開彈出視窗。上傳圖片后,直接發送密鑰。
uj5u.com熱心網友回復:
twitter 中有一個用于上傳檔案的輸入標簽。您可以使用該定位器上傳檔案。
下面的代碼能夠推特影像:
環境:
蟒蛇3.9.5
作業系統: Windows
URL = "https://twitter.com/login"
driver.get(URL)
driver.maximize_window()
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.NAME, "text"))).send_keys("your username")
driver.find_element(By.XPATH, '(//*[@role="button"]//following::span[contains(.,"Next")])[2]').click()
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.NAME, "password"))).send_keys("your passowrd")
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@data-testid='LoginForm_Login_Button']"))).click()
sleep(5)
imagePath = driver.find_element(By.XPATH, "//*[@data-testid='fileInput']")
imagePath.send_keys("C:\\Users\\username\\Documents\\Personal\\selenium.png")
tweetButton = driver.find_element(By.XPATH, "//*[@data-testid='tweetButtonInline']")
tweetButton.click()
輸出:

輸入檔案標簽:

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/364298.html
標籤:Python 硒 硒网络驱动程序 css-选择器 硒铬驱动器
