如何访问在Python中单击Selenium链接后打开的模式对话框?

时间:2017-03-08 22:16:18

标签: python selenium firefox

我是Python新手。我试图从indiegogo网站上删除数据。 当我单击创建者的“关于”链接时,我无法从打开的模式对话框/弹出窗口中抓取数据。

DMARC

我试过了

1)browser.switch_to.alert()

2)browser.switch_to.frame()

3)browser.switch_to.window()

但没有运气。

我的部分代码是

        window_before = browser.window_handles[0]
        about=browser.find_element_by_class_name("campaignTrust- detailsLinks-info.ng-binding")

        about.click()

        #window_after = browser.window_handles[1]

        iframe = browser.find_element_by_class_name("modal-dialog")

        #alert = browser.switch_to_alert()
        time.sleep(5)
        #browser.switch_to.window(window_after)
        #browser.switch_to.alert().accept()
        #alert.accept()
        browser.switch_to.frame(iframe)
        #print (browser.page_source.encode("utf_8","ignore"))
        creator_role=soup.find("div", class_="campaignTrustInfo-campaignerDetails-role.ng-binding").get_text()
        info_abtpage=soup.find("div", class_="campaignTrustInfo-sectionContent ng-binding")

1 个答案:

答案 0 :(得分:1)

您正在查看的弹出窗口不是窗口,iframe或浏览器警报:它只是更多DOM。

您正在使用硒,所以请保持简单,不要切换使用BeautifulSoup。

browser.get('https://www.indiegogo.com/projects/camp-pride-needs-your-support')
browser.find_element_by_css_selector('.campaignTrust-detailsLinks-info.ng-binding').click()
info = browser.find_elements_by_css_selector('.modal-content').text

您将获得包含嵌入换行符的文字:

  

关于
  J Mase III
  Camp Pride ....