我试图找到并点击一个按钮“搜索”在内部网站使用python硒。 带有class = "button"的元素:
<a href="javascript:showSearch(true)" title="Search" class="button" id="button_search">
<img src="images/icon_search.gif" alt="">Search
</a>
单击时,此按钮将显示一个包含许多搜索过滤器的表,类更改为“button_active”
<a href="javascript:showSearch(true)" title="Search" class="button_active" id="button_search">
<img src="images/icon_search.gif" alt="">Search
</a>
和xpath是:
//*[@id="button_search"]
css定位 包:
import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
我尝试了以下所有代码:
search_button = driver.find_element_by_id('button_search')
or
search_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="button_search"]')))
or
search_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@title="Search" and @class="button" and @id="button_search"]')))
和许多方式通过ID, LINK_TEXT…但我总是得到同样的错误
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="button_search"]"}
(Session info: chrome=79.0.3945.79)
你知道为什么它可能找不到这个按钮吗? 谢谢你! 编辑: 我试过switch_to.frame,它工作了! 谢谢大家! 问题来源StackOverflow 地址:/questions/59385461/python-selenium-unable-to-locate-element-on-search-button
建议你在点击之前,输出一下当前页面的page_source看看button_search这个按钮是否已经渲染了。 怀疑button_search按钮是动态渲染的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。