python - 如何点击img元素?
问题描述
我正在尝试访问 selenium 中的以下类,但它显示 element not found 错误。
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
as 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()
推荐阅读
- visual-studio-code - 当我尝试在 vscode 扩展中更新诊断时遇到问题
- indexing - 使用 visor 的 Apache Ignite 索引
- ajax - 虽然人口子类别下拉列表收到以下错误活动管理员
- c# - 尝试单击插入按钮时在 C# 项目中出现格式错误
- python-3.x - 如何检查两个列表项是否包含相同的内容,但在 Python 中以不同的顺序?
- python - 如何在 tkinter 上显示除零以外的初始值?
- python - 如何在 PyTorch 中组合数据集以同时返回图像和 numpy 文件
- reactjs - 是否可以在 JSX 中指定全局类型?
- javascript - 登录成功后切换页面
- javascript - 扫描时隐藏特定输入的移动键盘