簡體   English   中英

無法使用 Python 自動單擊 Selenium 中的按鈕

[英]Unable to automate the click of a button in Selenium with Python

我正在嘗試將登錄過程自動化到 WebAdvisor。 我試圖通過調用不同的元素來 select 的“登錄”按鈕。 到目前為止,每一次嘗試都沒有成功。

我當前的代碼:

path = '.../chromedriver

driver = webdriver.Chrome(path)

url = 'https://webadvisor.barry.edu/

driver.get(url)

下面的都失敗了。

driver.find_element_by_id('acctLogin').click()

driver.find_element_by_name('Log In').click()

driver.find_element_by_link_text("Log In").click()

這是與我嘗試在 WebAdvisor 網站上單擊的按鈕相關的代碼部分:

WebAdvisor的html代碼

預期的結果是登錄頁面。 目前它沒有改變頁面。

您的 xpath 錯誤,請查找以下解決方案。

from selenium import webdriver
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(executable_path=r"chromedriver.exe")

driver.get("https://webadvisor.barry.edu/")


element=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//li[@id='acctLogin']//span[@class='label'][contains(text(),'Log In')]")))
element.click()
element0=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//input[@id='USER_NAME']")))
element0.send_keys("Test123")

誘導WebDriverWaitelement_to_be_clickable () 並跟隨定位器啟動。

Xpath

driver=webdriver.Chrome(path)
driver.get("https://webadvisor.barry.edu/")
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//li[@id='acctLogin']/a[./span[contains(.,'Log In')]]"))).click()

CSS 選擇器:

driver=webdriver.Chrome()
driver.get("https://webadvisor.barry.edu/")
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#acctLogin >a"))).click()

您需要導入以下庫。

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

瀏覽器快照:

在此處輸入圖像描述

暫無
暫無

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

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