我正在尝试使用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)
现在我有两个问题:
packing_slip_page
不会更新(我认为这是因为禁用了网址栏。但不确定。)我尝试打印每个参数的句柄(print handles
)但是它总是打印相同的值。那么如何访问其他参数的正确页面源呢?