正在解决的问题是无法单击并转到HTML页面上的下一页。正在访问一个HTML页面,该页面在搜索查询后显示结果。在页面底部,有一行数字可从您的查询页面中选择,即"1 2 3 4 next"-单击"2"将在第二页显示结果。如果你在不同的页码上,即2或3,底部的行看起来像:"上一页1 2 3 4下一页"。我使用Python和Webdriver来点击下一页来滚动我的结果。我第一次按它时,它会带我进入下一页。我第二次点击它时,会转到上一页。这意味着我被困在前两页,看不到第3页和第4页的结果。我注意到发生这种情况的原因是li class="arrow">标记在HTML代码中出现了两次。当进行第二次调用时,出现的第一个标记是带有"arrow"类的标记。我该如何点击这个?
HTML注释:-"li"标签定义了一个列表项
HTML代码:
单击下一步之前:
<div class="list">
<ul class="line">
<li class="current page"><a href>1</a></li>
<li><a href="/search_text=&&page=1">2</a></li>
<li><a href="/search_text=&&page=2">3</a></li>
<li><a href="/search_text=&&page=3">4</a></li>
<li class="arrow"><a href="/search_text=&&page=1">next</a></li>
</ul>
</div>
点击"下一步"后,HTML代码如下:
<div class="list">
<ul class="line">
<li class="arrow"><a href="/search_text=&">previous</a></li>
<li><a href="/search_text=&">1</a></li>
<li class="current page"><a href>2</a></li>
<li><a href="/search_text=&&page=2">3</a></li>
<li><a href="/search_text=&&page=3">4</a></li>
<li class="arrow"><a href="/search_text=&&page=2">next</a></li>
</ul>
</div>
Python代码:
chromedriver = "C:tempchromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(executable_path=r"C:tempchromedriver.exe")
driver.implicitly_wait(3)
driver.get(urlLink)
driver.find_element_by_css_selector("li.arrow").click() #Takes me to the next page
driver.find_element_by_css_selector("li.arrow").click() #Takes me to the previous page
您可以使用方法驱动程序find_element_by_link_text('next')查找元素,然后调用.click()
或者,您可以将ID添加到下一个按钮并调用:
driver.find_element_by_id('whatever_id_you_use').click()
或者通过添加一个类来区分下一个箭头和上一个箭头并调用来对其进行分类
driver.find_element_by_class_name('next_arrow').click()