我正在使用Selenium
浏览以下网站:
https://apps1.eere.energy.gov/sled/#/
我想拥有像Boston
这样的城市的数据:我正在做的是以下内容:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
driver = webdriver.Firefox()
driver.get("https://apps1.eere.energy.gov/sled/#/")
search = driver.find_element_by_class_name('sr-only')
search.send_keys("Boston")
search.send_keys(Keys.RETURN)
time.sleep(5)
tmp = driver.find_element_by_css_selector("a.csv-link")
这种方法允许我到达以下网页:
现在,我想通过点击csv
然后State and National Retail Electricity Rate Trends
下载Download Chart
下的Download Chart\Data CSV
文件。
我尝试点击它:
tmp.click()
但我得到了错误:
ElementNotInteractableException: Message:
我在检查按钮(Download Chart/Data
)时报告我想通过在Firefox中显示检查元素的屏幕截图来点击。
答案 0 :(得分:0)
'a.csv-link'
不是上课。您可以尝试使用页面中显示的ID。
你可以试试这个:
content = driver.find_element_by_id('csv-link')
答案 1 :(得分:0)
您试图先点击“下载聊天”,然后尝试点击“下载图表/数据CSV”下载CSV文件,问题出在您正在使用的定位器上
您正在尝试根据类名单击元素,但定位器没有类属性。
点击下载聊天后尝试使用以下xpath。
//a[@id='csv-link']
答案 2 :(得分:0)
a.csv-link
是一个css定位器,因此您需要driver.find_element_by_css_selector
答案 3 :(得分:0)
在到达您指定的页面后,下载文件涉及两个步骤。首先,您必须单击dorp-down按钮,然后您必须选择csv数据选项。使用这些元素的相应xpath,
EntityManager em = entityManagerFactory.createEntityManager();
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Person.class);
Root person = criteriaQuery.from(Person.class);
person.fetch(Person_.adresses);
criteriaQuery.select(person);
List resultList = em.createQuery(criteriaQuery).getResultList();