gpt4 book ai didi

python - 用 selenium 抓取,无法获得单击按钮并用我想要的数据加载隐藏表

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:33 25 4
gpt4 key购买 nike

我正在尝试抓取一个具有导航选项卡的表单,该选项卡显示 4 种不同的方式来搜索请求的信息。 URL 加载到我要搜索的选项卡中,并自动填写日期字段。当人类用户想要查看信息时,他们只需单击所选选项卡中的搜索按钮,即可启用加载屏幕并填充并启用下面的表格,其中包含我想要抓取的数据。我目前正在使用 python 3 和 selenium。

按钮代码:

<button type="submit" id="community-search" class="btn btn-primary" data-bind="click: submitSearch, enable: searchEnabled">Search</button>

这是我现在的代码:

#start of code after imports
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')

dir_path = os.path.dirname(os.path.realpath(__file__))
chromedriver = dir_path + "/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chrome_options = options, executable_path = chromedriver)

# LOGS INTO THE SITE
browser.get('https://***.com/')
username = browser.find_element_by_name('UserName')
username.send_keys('***')
password = browser.find_element_by_name('Password')
password.send_keys('***')
browser.find_element_by_css_selector('#sign-in').click()
# LOGIN WORKS

#GOES TO THE SCHEDUALS PAGE
browser.get('https://***.com/Schedules')
#I KNOW IT IS NAVIGATING TO THIS PAGE

# I HAVE TRIED WAITING AND FOUND NO LUCK, TRYING TO CLICK THE BUTTON LEADS TO A HUGE LIST OF TRACEBACKS
browser.find_element_by_css_selector('community-search').click()
#WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, 'community-search'))).click

#end of code

错误-

    Traceback (most recent call last):
File "Project.py", line 29, in <module>
browser.find_element_by_css_selector('community-search').click()
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 589, in find_element_by_css_selector
return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 955, in find_element
'value': value})['value']
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"community-search"}

我对 python 和网络抓取相当陌生,这是我的第一篇文章,所以我希望这是足够的信息。任何帮助将不胜感激

ImageOfSiteBeforeBtnPress ImageOfSiteAfterBtnPress

最佳答案

您的 CSS 选择器缺少 #,因为 community-search 是一个 id。

所以代替:

browser.find_element_by_css_selector('community-search').click()

应该是:

browser.find_element_by_css_selector('#community-search').click()

另一种方法是:

browser.find_element_by_id('community-search').click()

关于python - 用 selenium 抓取,无法获得单击按钮并用我想要的数据加载隐藏表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49439807/

25 4 0
文章推荐: python - 根据位置多次打印字符串元素
文章推荐: javascript - 强制 列为固定宽度;防止自动展开