javascript - 如何使用 selenium 迭代网站搜索结果?
问题描述
我正在尝试遍历此网站上的搜索结果页面。这是他们为分页部分提供的 HTML 代码片段: 分页 HTML:
我想用来转到下一页的链接:
<a href="/Catalogue/search?Query=mask%20respirator&QueryType=All&HideMaskedProducts=False&WasCorrected=False&Page=2&PageSize=10&TotalRecordCount=1537&SortDescending=False&CoreListRequest=BrowseAll">Next >></a>
我试图做:
next_page_link = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//a[@href='/Catalogue/search?Query=face%20mask&QueryType=All&HideMaskedProducts=False&WasCorrected=False&Page=2&PageSize=10&TotalRecordCount=932&SortDescending=False&CoreListRequest=BrowseAll'")))
next_page_link.click()
但它似乎不起作用。当我打印出 next_page_link 时,它确实返回了一个元素,所以我认为代码本身可以。链接有问题吗?我可以按照我尝试的方式使用它,还是有任何其他方式可以迭代结果页面?谢谢!
解决方案
您的 XPATH 可能会导致这里出现问题,因此单击不会转到正确的元素。
尝试这样的事情
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//a/text()[contains(.,"Next")]/parent::*'))).click()
如果要将其分配给变量并调用单击,您也可以这样做:
next_page_link = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//a/text()[contains(.,"Next")]/parent::*')))
next_page_link.click()
推荐阅读
- php - 按选择标签过滤的简单搜索
- python - 在 Python 中使用多处理时如何解决 BrokenPipeError
- geometry - 确定地图中草图叠加层下的点
- javascript - 父 DIV 的 CSS 干扰 SVG 动画
- google-cloud-platform - 优化 Apache Beam / 云数据流启动
- python - 基于 datetime(64) 的 numpy .resample('4H').mean() 会是什么样子?
- flutter - 如何使用 Flutter 将数据 SQLite(离线)发送到服务器 MySQL?
- php - PHP每周按天排序数据mysql
- javascript - 无法正确访问内部函数
- python-3.x - 为所有可能的组合创建一行