- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试抓取一个具有导航选项卡的表单,该选项卡显示 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 和网络抓取相当陌生,这是我的第一篇文章,所以我希望这是足够的信息。任何帮助将不胜感激
最佳答案
您的 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/
我是一名优秀的程序员,十分优秀!