我正在嘗試使用 selenium webdriver 并使用 xpath 作為定位器來獲取標簽的屬性。我將 xpath 提供給驅動程式并回傳NoSuchElementException,但是當我在“檢查元素”視窗中輸入 xpath 時,它顯示了該特定標簽,這意味著定位器確實存在。那么硒有什么問題呢?即使我提供完整的 xpath 也一樣
from selenium import webdriver
driver = webdriver.Chrome('D:\\chromedriver.exe')
driver.get('https://cq-portal.webomates.com/#/login')
element=driver.find_element_by_xpath("//button[@type='button']")
print(element.get_attribute('class'))
driver.quit()
硒版本 = 3.141.0
uj5u.com熱心網友回復:
您只需要等待加載頁面。你的代碼非常好。要么給硬編碼等待,比如睡眠或元素的存在。兩者都會起作用。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome(PATH)
driver.maximize_window()
wait = WebDriverWait(driver, 20)
driver.get('https://cq-portal.webomates.com/#/login')
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@type='button']")))
element = driver.find_element(By.XPATH, "//button[@type='button']")
print(element.get_attribute('class'))
driver.quit()
輸出:
btn btn-md btn-primary btn-block
uj5u.com熱心網友回復:
回圈就像你錯過了延遲。請試試這個:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome('D:\\chromedriver.exe')
wait = WebDriverWait(driver, 20)
driver.get('https://cq-portal.webomates.com/#/login')
wait.until(EC.visibility_of_element_located((By.XPATH, "//button[@type='button']")))
element=driver.find_element_by_xpath("//button[@type='button']")
print(element.get_attribute('class'))
driver.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365966.html
