首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击Selenium中的元素

单击Selenium中的元素
EN

Stack Overflow用户
提问于 2022-06-07 16:55:17
回答 1查看 133关注 0票数 -1

我正在编写一个程序,从HTML表中收集用户信息。我可以从第一页获得信息,但不能让python中的selenium单击下一页的按钮。下面是我要单击的按钮的HTML代码

代码语言:javascript
复制
<a tabindex="0" aria-label="Next page"> Next <span class="show-for-sr">page</span></a> 

如您所见,它是一个带有文本“Next”的锚标记。在浏览器中单击此按钮将使我进入下一页,但是当我试图使用selenium单击时,会得到错误。

代码语言:javascript
复制
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代码

代码语言:javascript
复制
element = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH, '//*[@id="queryList"]/pagination-template/ul/li[10]/a'))
        )
element.click()

如何让selenium转到下一页?

EN

回答 1

Stack Overflow用户

发布于 2022-06-07 21:56:31

根据HTML:

代码语言:javascript
复制
<a tabindex="0" aria-label="Next page"> Next <span class="show-for-sr">page</span></a>

要单击文本为下一页的链接,您需要为诱导WebDriverWait,您可以使用以下任何一个

使用

  • 的CSS_SELECTOR:

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()

  • Note:您必须添加以下导入:

从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72534963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档