【发布时间】:2020-03-11 16:59:06
【问题描述】:
我在登录按钮后尝试单击页面上的按钮是以下 HTML
<div id="carrierDashboardControls">
<button class="yms-button-primary" ng-click="refresh()">
<t>Refresh</t>
</button>
<button class="yms-button-primary-alt ng-isolate-scope" ng-csv="fetchData()" lazy-load="true"
csv-header="getCsvHeader" filename="carrier-dashboard.csv" field-separator=",">CSV
</button>
</div>
这里有 2 个按钮,我想单击一个有类的按钮 “yms-button-primary-alt ng-isolate-scope” 但是我得到了以下错误
单击此按钮将下载 CSV 文件,但现在我收到错误“selenium.common.exceptions.WebDriverException: Message: Failed to convert data to an object”
我目前正在使用以下代码,请注意,由于业务性质,无法共享实际 url(由于登录后重定向,我导航到该 url 两次)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
url = "THE URL"
username = 'USERNAME'
password = 'PASSWORD'
driver = webdriver.Firefox(executable_path=r'MYPATH/geckodriver.exe')
driver.implicitly_wait(100)
driver.get(url)
user_field = driver.find_element_by_id("ap_email")
pass_field = driver.find_element_by_id("ap_password")
sign_in = driver.find_element_by_id("signInSubmit")
user_field.send_keys(username)
pass_field.send_keys(password)
sign_in.click()
driver.implicitly_wait(100)
driver.get(url)
CSV_BUTTON = driver.find_element_by_class_name("yms-button-primary-alt ng-isolate-scope")
CSV_BUTTON.click()
作为补充说明,我想操作之后下载的文件,因为如果可能的话,我想让它自动重命名为当前日期和时间?
下面的完整堆栈跟踪
Traceback (most recent call last):
File "C:/Users/USER/PycharmProjects/YMS scrape/venv/YMS Sel#.py", line 26, in <module>
CSV_BUTTON = driver.find_element_by_class_name("yms-button-primary-alt ng-isolate-scope")
File "C:\Users\USER\Anaconda3\envs\YMS scrape\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 564, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Users\USER\Anaconda3\envs\YMS scrape\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\USER\Anaconda3\envs\YMS scrape\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\USER\Anaconda3\envs\YMS scrape\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Failed to convert data to an object
【问题讨论】:
-
你能分享完整的堆栈跟踪吗?
-
@AlexeyR。抱歉,我不知道怎么找到?你的意思是回溯吗?如果有帮助,我正在使用 pycharm
-
是的,基本上它是一个调用堆栈,显示异常发生的位置以及失败之前的调用。通常它以开发模式打印,但有时会被抑制。
-
@AlexeyR。我想我把它都加在了帖子的底部?如果我很傻,一定要告诉我,这不是它
标签: python selenium xpath css-selectors webdriverwait