我正在编写一个程序,从HTML表中收集用户信息。我可以从第一页获得信息,但不能让python中的selenium单击下一页的按钮。下面是我要单击的按钮的HTML代码
<a tabindex="0" aria-label="Next page"> Next <span class="show-for-sr">page</span></a> 如您所见,它是一个带有文本“Next”的锚标记。在浏览器中单击此按钮将使我进入下一页,但是当我试图使用selenium单击时,会得到错误。
Traceback (most recent call last):
File "/Users/gavmross/Desktop/cnct/user_data/webscrape/active_users.py", line 182, in <module>
main()
File "/Users/gavmross/Desktop/cnct/user_data/webscrape/active_users.py", line 20, in main
open_site()
File "/Users/gavmross/Desktop/cnct/user_data/webscrape/active_users.py", line 160, in open_site
click_next()
File "/Users/gavmross/Desktop/cnct/user_data/webscrape/active_users.py", line 136, in click_next
element = WebDriverWait(driver, 20).until(
File "/Users/gavmross/opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 89, in click
self._execute(Command.CLICK_ELEMENT)
File "/Users/gavmross/opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 773, in _execute
return self._parent.execute(command, params)
File "/Users/gavmross/opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
self.error_handler.check_response(response)
File "/Users/gavmross/opt/anaconda3/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (734, 1344)
(Session info: chrome=102.0.5005.61)
Stacktrace:
0 chromedriver 0x000000010276bd19 chromedriver + 5197081
1 chromedriver 0x00000001026f9b23 chromedriver + 4729635
2 chromedriver 0x00000001022d72b8 chromedriver + 393912
3 chromedriver 0x0000000102313a52 chromedriver + 641618
4 chromedriver 0x00000001023115d3 chromedriver + 632275
5 chromedriver 0x000000010230ec14 chromedriver + 621588
6 chromedriver 0x000000010230d885 chromedriver + 616581
7 chromedriver 0x0000000102301689 chromedriver + 566921
8 chromedriver 0x0000000102329802 chromedriver + 731138
9 chromedriver 0x0000000102300f45 chromedriver + 565061
10 chromedriver 0x000000010232990e chromedriver + 731406
11 chromedriver 0x000000010233c2a1 chromedriver + 807585
12 chromedriver 0x00000001023296f3 chromedriver + 730867
13 chromedriver 0x00000001022ffa49 chromedriver + 559689
14 chromedriver 0x0000000102300a75 chromedriver + 563829
15 chromedriver 0x000000010273dbdd chromedriver + 5008349
16 chromedriver 0x0000000102742b64 chromedriver + 5028708
17 chromedriver 0x0000000102747bcf chromedriver + 5049295
18 chromedriver 0x00000001027437ca chromedriver + 5031882
19 chromedriver 0x000000010271d59f chromedriver + 4875679
20 chromedriver 0x000000010275d388 chromedriver + 5137288
21 chromedriver 0x000000010275d50f chromedriver + 5137679
22 chromedriver 0x0000000102773085 chromedriver + 5226629
23 libsystem_pthread.dylib 0x00007fff203388fc _pthread_start + 224
24 libsystem_pthread.dylib 0x00007fff20334443 thread_start + 15下面是用于单击next按钮的python代码
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="queryList"]/pagination-template/ul/li[10]/a'))
)
element.click()如何让selenium转到下一页?
发布于 2022-06-07 21:56:31
根据HTML:
<a tabindex="0" aria-label="Next page"> Next <span class="show-for-sr">page</span></a>要单击文本为下一页的链接,您需要为诱导WebDriverWait,您可以使用以下任何一个
使用
20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,“aaria-WebDriverWait=‘下一页’span.show-for-sr"))).click()
使用XPATH的
20).until(EC.element_to_be_clickable((By.XPATH,(WebDriverWait)//a@aria-label=‘Next page'//span@class='show-for-sr’和text()='page'"))).click()
从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC
https://stackoverflow.com/questions/72534963
复制相似问题