3 回答

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊
您可以使用 javascript 單擊按鈕:
SetPin = driver.find_element_by_xpath('//*[@id="main"]/div/div/section/div/div[3]/a')
script = 'arguments[0].click();'
driver.execute_script(script , SetPin)
這將允許您單擊一個元素,即使它前面有另一個元素,但它不會因此模擬實(shí)際的用戶體驗。有時,您會希望顯示另一個元素將收到點(diǎn)擊的錯誤。
此外,最佳實(shí)踐是使用等待來幫助防止在元素可用之前與元素交互出現(xiàn)問題。你可以這樣做:
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, 10)
locator = '//*[@id="main"]/div/div/section/div/div[3]/a'
SetPin = wait.until(EC.presence_of_element_located(By.XPATH, locator))
script = 'arguments[0].click();'
driver.execute_script(script , SetPin)

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊
請使用 javascript click 找到以下答案,或者您也可以嘗試使用 ActcionChains
element = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))
driver.execute_script("arguments[0].click();", element)
或者
element = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="main"]/div/div/section/div/div[3]/a')))
ActcionChains(driver).move_to_element(element).click().perform()
注意: 將以下 imorts 添加到您的解決方案中
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊
driver.find_element_by_tag_name('body').send_keys(Keys.HOME)
使用 send_keys(Keys.HOME) 向上滾動到頁面頂部
添加回答
舉報