python selenium没有更新弹出窗口网址

时间:2016-05-13 07:49:52

标签: python selenium

我正在尝试使用python和selenium来抓取网页。我有一个url,它接受一个参数和一个有效参数列表。我一次只使用一个参数导航到该URL,然后单击一个链接,弹出一个带有页面的弹出窗口。

  

弹出窗口会在页面加载时自动打开打印对话框。
  此弹出窗口也禁用了网址栏。

我的代码:

def packAmazonOrders(self, order_ids):
    order_window_handle = self.driver.current_window_handle     
    for each in order_ids:
        self.driver.find_element_by_id('sc-search-field').send_keys(Keys.CONTROL, "a")
        self.driver.find_element_by_id('sc-search-field').send_keys(Keys.DELETE)
        self.driver.find_element_by_id('sc-search-field').send_keys(each)
        self.driver.find_element_by_class_name('sc-search-button').click()
        src = self.driver.page_source.encode('utf-8')
        if 'Unshipped' in src and 'Easy Ship - Schedule pickup' in src:
            is_valid = True
        else:
            is_valid = False

        if is_valid:
            print 'Packing Slip Start - %s' %each
            self.driver.find_element_by_link_text('Print order packing slip').click()
            handles = self.driver.window_handles
            print handles
            try:
                handles.remove(order_window_handle)
            except:
                pass
            self.driver.switch_to_window(handles.pop())
            print handles
            packing_slip_page = ''
            packing_slip_page = self.driver.page_source.encode('utf-8')
            if each in packing_slip_page:
                print 'Packing Slip Window'
            else:
                print 'not found'
            self.driver.close()
            self.driver.switch_to_window(order_window_handle)

现在我有两个问题:

  1. 如何将该弹出页面下载为pdf?
  2. 对于第一个参数,每件事情都很好。但是对于列表中的其他参数,packing_slip_page不会更新(我认为这是因为禁用了网址栏。但不确定。)我尝试打印每个参数的句柄(print handles)但是它总是打印相同的值。那么如何访问其他参数的正确页面源呢?

0 个答案:

没有答案