3 回答
TA贡献1847条经验 获得超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)
这将允许您单击一个元素,即使它前面有另一个元素,但它不会因此模拟实际的用户体验。有时,您会希望显示另一个元素将收到点击的错误。
此外,最佳实践是使用等待来帮助防止在元素可用之前与元素交互出现问题。你可以这样做:
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贡献1155条经验 获得超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贡献1829条经验 获得超9个赞
driver.find_element_by_tag_name('body').send_keys(Keys.HOME)
使用 send_keys(Keys.HOME) 向上滚动到页面顶部
添加回答
举报