按id查找javascript元素

2024-04-26 03:52:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个使用selenium的网站下载csv文件,但最后一步失败了。你知道吗

我无法选择文件的格式,然后单击导出。有人知道怎么做吗?有一个免费的注册过程,可以连接到该网站,你将不得不注册你的电子邮件地址来尝试。我附上了一张图片,并用红色圈出了我努力实现自动化的部分picture。下面是工作代码,直到我想完成的最后一步。你知道吗

非常感谢你的帮助!你知道吗

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By

driver = webdriver.PhantomJS()
driver.get("http://www.sem-o.com/MarketData/pages /default.aspx?ReturnUrl=%2fMarketData%2fPages%2fDynamicReports.aspx")


#log-in
##############
elem =  driver.find_element_by_name("ctl00$PlaceHolderMain$FBALoginId$username")
elem.clear()
elem.send_keys("EMAIL")
elem.send_keys(Keys.RETURN)

elem = driver.find_element_by_id("ctl00_PlaceHolderMain_FBALoginId_password")
elem.clear()
elem.send_keys("PASSWORD")
#elem.send_keys(Keys.RETURN)

elem =       driver.find_element_by_id(r"ctl00_PlaceHolderMain_FBALoginId_btnLogin")
elem.click()
##############




#retrieve files of interest
##############
elem =   Select(driver.find_element_by_id("ctl00_ctl00_g_f5e6fa98_faa2_4210_85e9_780934d96ab8_cmbReportGroup"))
elem.select_by_visible_text('Forecast Data')

elem = Select(driver.find_element_by_id("ctl00_ctl00_g_f5e6fa98_faa2_4210_85e9_780934d96ab8_cmbSelectReport"))
elem.select_by_visible_text("Four Day Load Forecast")

elem = driver.find_element_by_id(r"ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab462_btnGenerateLocalReport")
elem.click()

elem =   driver.find_element_by_id(r"ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab462_prm_GetFromDate_prm_GetFromDateDate")
elem.clear()
elem.send_keys("01/01/2017")

elem =     driver.find_element_by_id(r"ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab462_prm_GetToDate_prm_GetToDateDate")
elem.clear()
elem.send_keys("15/01/2017")

elem = driver.find_element_by_id(r"ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab46  2_btnGenerateLocalReport")
elem.click()

Tags: fromimportsendidbydriverseleniumelement
1条回答
网友
1楼 · 发布于 2024-04-26 03:52:08

你的错误是什么? 它在哪一步失败,是实际点击导出吗?如果是这种情况,请检查在googledev控制台中标识元素的方式。转到F12开发工具,然后在控制台中键入:

$$('#ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab46.2_btnGenerateLocalReport')

这将显示具有所选id的所有元素。如果是空数组,则选择器无效。你知道吗

您可能需要尝试使用id选择器,因为该空间看起来有点奇怪。需要更多的信息来说明你所遇到的错误以及为什么它不能提供更好的答案。你知道吗

相关问题 更多 >