通过id查找javascript元素

时间:2018-04-10 14:14:04

标签: javascript python selenium

我正在尝试使用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()

1 个答案:

答案 0 :(得分:0)

你得到的错误是什么? 失败的步骤是,实际点击导出是什么?如果是这种情况,请检查您在Google开发者控制台中识别元素的方式。转到F12开发工具,然后在控制台类型中:

$$('#ctl00_ctl00_g_9ab92c0a_eb10_4b6c_ad1b_7277cbdab46.2_btnGenerateLocalReport')

这将显示具有所选id的所有元素。如果它是一个空数组,则选择器无效。

您可能需要尝试使用id选择器,因为该空间看起来有点奇怪。需要更多关于您获得的错误以及为什么它无法提供更好答案的信息。

相关问题