selenium webdriver 无法从其 xpath 中找到元素,即使 xpath 是正确的
selenium webdriver unable to find element from its xpath even though the xpath is correct
我正在尝试使用 selenium webdriver 并使用 xpath 作为定位器来获取标签的属性。我将 xpath 提供给驱动程序,它返回 NoSuchElementException
,但是当我在“检查元素”window 中输入 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()
selenium 版本 = 3.141.0
像你这样的循环缺少延迟。
请试试这个:
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()
您只需稍等片刻即可加载页面。您的代码非常好。要么给硬编码等待,比如睡眠或元素的存在。两者都可以。
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
我正在尝试使用 selenium webdriver 并使用 xpath 作为定位器来获取标签的属性。我将 xpath 提供给驱动程序,它返回 NoSuchElementException
,但是当我在“检查元素”window 中输入 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()
selenium 版本 = 3.141.0
像你这样的循环缺少延迟。 请试试这个:
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()
您只需稍等片刻即可加载页面。您的代码非常好。要么给硬编码等待,比如睡眠或元素的存在。两者都可以。
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