我有一个一次有多行的动态表,它只显示很少的行,所以它有一个“下一步”按钮来移动到下一组值。表中的每一行都是指向“更多详细信息”页面的链接,我试图从该页面获取数据,然后返回到主搜索结果表,单击第二个链接,单击“报废”、“返回”等等。问题是,当我单击“下一步”按钮以获得下一组值,并单击结果中的第一个链接,然后在抓取后返回结果集时,我会看到第一个搜索结果(第1页而不是第2页)。有人能告诉我我做错了什么吗
使用switch_to.window(driver.window_handle[])转到详细信息页面,并使用window_handle[0]返回基本结果页面
尽管如此:
table = driver.find_element_by_xpath(
'//*[@id="ctl00_ph"]/tbody')
row_table = table.find_element_by_tag_name('tr')
# row_table.find_element(By.TAG_NAME('td'))
count = 21
before = '//*[@id="ctl00_l'
after = '_lnkProperty"]'
all = driver.window_handles
print(all)
window_before = driver.window_handles[0]
#window_before = driver.window_handles()
for i in range(2, count + 1):
if i < 10:
link = before + '0' + str(i) + after
else:
link = before + str(i) + after
links.append(link)
# print(link)
row_table.find_element_by_xpath(link).click()
time.sleep(5)
driver.switch_to.window(driver.window_handles[1])
print(driver.window_handles)
print(driver.window_handles[1])
time.sleep(2)
html_doc = driver.page_source.encode('utf-8')
# print(html_doc)
# driver.back()
soup = BeautifulSoup(html_doc, 'html.parser')
time.sleep(2)
" ' ' ' ' ' ' #打印(数据) 驱动程序关闭() 驾驶员。切换到。车窗(前车窗) #driver.switch_to.default_content() pin.append(数据) 打破 时间。睡眠(1)
# elm = driver.find_element_by_xpath('//*[@id="ctl00_phArticle_ctlPropertySearch_ctlSearchResults_pnlAppealSearchResults"]/div[2]/div/a[9])')
elm = driver.find_element_by_class_name('pager-link')
# ('a', class_='pager-link')
if 'inactive' in elm.get_attribute('class'):
break
else:
elm.click()
print('click')
time.sleep(1)
print(driver.current_window_handle)
当我从其他窗口返回到该页面时,我仍然需要看到单击“下一步”后显示的结果
目前没有回答
相关问题 更多 >
编程相关推荐