我正在尝试访问 selenium 中的以下类,但它显示元素未找到错误。
HTML
<button class="gpquestion-plusicon">
<img src="./assets/images/viewdetails.png">
</button>
代码
driver.find_elements_by_css_selector("//img[@src='./assets/images/viewdetails.png']").click()
或者
driver.find_element_by_css_selector("//img[@src='./assets/images/viewdetails.png']").click()
driver.find_elements_by_xpath("//img[@src='./assets/images/viewdetails.png']").click()
异常
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector:
An invalid or illegal selector was specified
不幸的是,它们都不起作用。 xpath 显示没有找到元素错误。
有什么建议吗?
最佳答案
您正在尝试使用xpath
作为css_selector
。尝试一下
driver.find_element_by_css_selector("[src='./assets/images/viewdetails.png']").click()
或者
driver.find_element_by_xpath("//img[@src='./assets/images/viewdetails.png']").click()
您还可以使用显式等待
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, 10)
wait.until(ec.element_to_be_clickable((By.CSS_SELECTOR, "[src='./assets/images/viewdetails.png']"))).click()
# or
wait.until(ec.element_to_be_clickable((By.XPATH, "//img[@src='./assets/images/viewdetails.png']"))).click()
关于python - 如何点击img元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60413219/