Blockquote
我正在做一个项目,我需要从一个显示一天数据的图表中提取数据。例如:我想获取2017年的所有数据,因此我必须在日期选择器中输入365次新日期。问题是,尽管我的XPATH调用非常具体,但脚本找到了许多WebElement的方法。其中许多甚至不符合XPATH中的限制。这只会在循环中发生,脚本会在每个循环中找到越来越多的web元素
我正在使用的代码:
Date_vec = pd.date_range(start="2017-01-01",end="2021-2-28")
DatePicker = web.find_element_by_xpath('/html/body/form/table/tbody/tr/td/table/tbody/tr/td[2]/div/div[1]/div[2]/div[2]/div[2]/div/div[2]/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]/span/input')
month_prev = 0
year_prev = 0
for i in Date_vec:
DatePicker = web.find_element_by_xpath('/html/body/form/table/tbody/tr/td/table/tbody/tr/td[2]/div/div[1]/div[2]/div[2]/div[2]/div/div[2]/div/table/tbody/tr[2]/td/table/tbody/tr/td[2]/span/input')
DatePicker.click()
if i.year != year_prev:
# Year_button = web.find_element(By.XPATH,"//span[@onclick = 'basicDatePicker.ehYearSelectorClick(this)']")
Year_button = web.find_elements(By.XPATH,".//span[@onclick = 'basicDatePicker.ehYearSelectorClick(this)']")
Year_button[-1].click()
Year_choice = web.find_elements(By.XPATH,"//a[normalize-space(text()) ='"+ str(i.year) + "']")
Year_choice[-1].click()
elif i.month != month_prev:
Month_button = web.find_elements(By.XPATH,"//span[@onclick = 'basicDatePicker.ehMonthSelectorClick(this)']")
Month_button[-1].click()
Month_choice = web.find_elements_by_class_name('bdpMonthItem')
Month_choice[i.month-1].click()
Day_button = web.find_elements(By.XPATH,"//a[normalize-space(text()) ='"+ str(i.day) + "' and contains(@class, 'bdpDay')]")
Day_button[-1].click()
time.sleep(3)
month_prev = i.month
year_prev = i.year
例如,问题出现在以下行:
Day_button = web.find_elements(By.XPATH,"//a[normalize-space(text()) ='"+ str(i.day) + "' and contains(@class, 'bdpDay')]")
此行返回4个元素,其中2个元素中没有任何文本。我用下面的行检查了这个
test1 = [i.text for i in Day_button]
所以我的问题基本上是:为什么行代码返回4个元素,其中两个没有文本,而我显式地告诉它将当前日期作为文本。感谢您的帮助
编辑:为了清晰起见,我添加了一个来自相关日期选择器的剪报:
目前没有回答
相关问题 更多 >
编程相关推荐