【发布时间】:2021-03-05 20:45:05
【问题描述】:
这是我的代码,首先我在 all_trows 变量中获取表的所有行,在迭代它时,我期望不同的输出,因为每一行都有不同的文本,但我总是得到第一个 tr 的值表。
url = 'https://www.un.org/Depts/ptd/eoi?field_commodity_group_eoi_rfi_tid=All&items_per_page=5'
driver.get(url)
driver.implicitly_wait(5)
WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.XPATH,"//*[@id='block-system-main']/div/div[contains(@class,'view-content')] /table/tbody")))
WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.XPATH,"//*[@id='block-system-main']/div/div[contains(@class,'view-footer')]/div[contains(@class,'page_result')]")))
page = 0
while True:
time.sleep(5)
driver.implicitly_wait(10)
current_page_flag = driver.find_element(By.XPATH , "//*[@id='block-system-main']/div/div[@class ='view-footer'] / div[@class ='page_result']").text.strip()
WebDriverWait(driver,2).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='block-system-main']/div//tbody")))
all_trows = driver.find_elements_by_xpath("//*[@id='block-system-main']/div/div[@class = 'view-content'] / table / tbody / tr")
for eachRow in all_trows:
op_link = eachRow.find_element_by_xpath('//td[position() = 1]/a').get_attribute('href').strip()
print(op_link)
try:
WebDriverWait(driver,2).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='block-system-main']/div/div[@class ='item-list']/ul/li")))
driver.find_element_by_xpath("//*[@id='block-system-main']/div/div[@class = 'item-list']/ul/li[contains(@class, 'pager-next')]/a").click()
driver.implicitly_wait(5)
WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath("//*[@id='block-system-main']/div/div[@class ='view-footer'] / div[@class ='page_result']").text.strip()!= current_page_flag)
page = page + 1
print(page)
except NoSuchElementException:
print('no next button')
# driver.quit()
break
这是我的输出
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunmiss17882
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunmiss17882
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunmiss17882
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunmiss17882
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunmiss17882
1
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunficyp17877
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunficyp17877
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunficyp17877
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunficyp17877
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiunficyp17877
2
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiescwa17908
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiescwa17908
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiescwa17908
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiescwa17908
https://www.un.org/Depts/ptd/business-opportunities/EOI/eoiescwa17908
我希望在迭代不同的行时我必须得到不同的 href 值。
【问题讨论】:
标签: python selenium selenium-webdriver