在單擊 xpath 之前,如何重繪 Python Selenium?
xpath_click = '//*[@id="wrapcalendar"]/div[2]/div/div[1]/table/tbody/tr[5]/td[5]'
while True:
element = driver.find_element_by_xpath(xpath_click)
if element.text == 'xpath_click':
element.click()
break
else :
driver.refresh()
driver.implicitly_wait(1)
uj5u.com熱心網友回復:
你很接近,幾件事:
您應該提前知道預期的字串,基于我們將有一個 if 條件,見下文。
將有風險的代碼包裝在 try 和 except 塊中。
您應該
(hardcoded)至少等待2 seconds頁面重繪 成功完成。
代碼:
while True:
try:
element = driver.find_element(By.XPATH, xpath_click).text
if element == "your expected string here":
element.click()
print("Clicked on the element so break from infinite loop.")
break
else:
driver.refresh()
time.sleep(2)
except:
print("Something went wrong")
break
pass
uj5u.com熱心網友回復:
我不知道你為什么把它放在一個 if 回圈中,你試過等待一個元素嗎?適合您的場景的示例:
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.xpath, '//*[@id="wrapcalendar"]/div[2]/div/div[1]/table/tbody/tr[5]/td[5]')))
element.click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421982.html
標籤:
下一篇:如何從導航中抓取大影像?
