簡體   English   中英

Python selenium 多次單擊並返回相同 xpath

[英]Python selenium multiple click and back with same xpath

我嘗試在不同頁面獲取同一日期下的文章,有三個'Corp,FIG,SSA',我需要單擊一個然后返回並單擊另一個,但是元素的 xpath 是相同的,所以我想知道是否有一些“聰明”的方式來做到這一點,而不是一次又一次地復制?

如果頁面中沒有文章,我也希望網站返回,我應該使用“嘗試”嗎?

令人驚訝的是,我在 csv 文件中得到了兩次結果,就像 aabb... 不知道為什么

driver.get('https://www.globalcapital.com/Asia/Bonds')
Corp = driver.find_element_by_link_text("Corp")
Corp.click()
driver.implicitly_wait(10)
links=[link.get_attribute('href') for link in driver.find_elements_by_xpath("//div[contains(text(),'28 Jan 2021')]/preceding::a[2]")]
titles = [link.text for link in driver.find_elements_by_xpath("//div[contains(text(),'28 Jan 2021')]/preceding-sibling::h3/a")]
for link in links:
    for title in titles:
        dataframe = pd.DataFrame({'col1':title,'col2':link},index=[0])
        dataframe.to_csv('hi.csv',mode='a+',header=False,index=False,encoding='utf-8-sig')
driver.back()
FIG = driver.find_element_by_link_text("FIG")
FIG.click()
driver.implicitly_wait(10)
links=[link.get_attribute('href') for link in driver.find_elements_by_xpath("//div[contains(text(),'28 Jan 2021')]/preceding::a[2]")]
titles = [link.text for link in driver.find_elements_by_xpath("//div[contains(text(),'28 Jan 2021')]/preceding-sibling::h3/a")]
for link in links:
    for title in titles:
        dataframe = pd.DataFrame({'col1':title,'col2':link},index=[0])
        dataframe.to_csv('hi.csv',mode='a+',header=False,index=False,encoding='utf-8-sig')
driver.back()
SSA = driver.find_element_by_link_text("SSA")
SSA.click()
driver.implicitly_wait(10) 

您正在多次迭代titles (每個link一次)。 您需要遍歷鏈接、標題

for link, title in zip(links, titles):
    dataframe = pd.DataFrame({'col1':title,'col2':link},index=[0])
    dataframe.to_csv('hi.csv',mode='a+',header=False,index=False,encoding='utf-8-sig')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM