开发者社区> 问答> 正文

Python - Selenium无法在搜索按钮上找到元素

我试图找到并点击一个按钮“搜索”在内部网站使用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

展开
收起
kun坤 2019-12-25 22:19:44 1386 0
1 条回答
写回答
取消 提交回答
  • 建议你在点击之前,输出一下当前页面的page_source看看button_search这个按钮是否已经渲染了。 怀疑button_search按钮是动态渲染的。

    2020-03-26 20:53:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载