Python 3 + Selenium:如何通过xpath查找此元素?

https://www.facebook.com/friends/requests/?fcref=jwl&outgoing=1

我想在“已发送的好友请求”中单击“查看更多请求”

<div id="outgoing_reqs_pager_57b87e5793eb04682598549" class="clearfix mtm uiMorePager stat_elem _646 _52jv">
   <div>
       <a class="pam uiBoxLightblue _5cz uiMorePagerPrimary" role="button" href="#" ajaxify="/friends/requests/outgoing/more/?page=2&page_size=10&pager_id=outgoing_reqs_pager_57b87e5793eb04682598549" rel="async">See More Requests</a>
<span class="uiMorePagerLoader pam uiBoxLightblue _5cz">
   </div>
</div>

我使用了这段代码,但是它不起作用。

driver.find_element_by_xpath("//*[contains(@id, 'outgoing_reqs_pager')]").click()

我得到了错误:

消息:元素在点(371.5,23.166671752929688)不可单击。其他元素将获得点击:

<input aria-owns="js_8" class="_1frb" name="q" value="" autocomplete="off" placeholder="Search Facebook" role="combobox" aria-label="Search" aria-autocomplete="list" aria-expanded="false" aria-controls="js_5" aria-haspopup="true" type="text">

怎么点击呢?谢谢 :)

索拉布·高尔(Saurabh Gaur)

实际上,您是通过使用部分ID匹配来定位元素的,因此此xpath可能不是唯一的,并且返回多个元素。

find_element 总是通过匹配定位器返回第一个元素,可能是返回了其他元素覆盖的其他元素,而不是欲望元素,这就是您遇到麻烦的原因。

在这里,您应该尝试link_text通过使用如下文本来查找所需元素:-

driver.find_element_by_link_text("See More Requests").click()

或使用partial_link_text如下:

driver.find_element_by_partial_link_text("See More Requests").click()

Edited1:-如果仍然遇到相同的异常,则需要先滚动以使用来到达该元素,exexute_script()然后单击如下所示:-

link = driver.find_element_by_partial_link_text("See More Requests")

#now scroll to reach this link
driver.exexute_script("arguments[0].scrollIntoView()", link)

#now click on this link 
 link.click()

或者,如果您不想滚动,则可以单击使用exexute_script而不滚动,如下所示:-

link = driver.find_element_by_partial_link_text("See More Requests")

#now perform click using javascript
driver.exexute_script("arguments[0].click()", link)

Edited2:-如果要在while循环中单击此链接直到它出现,则需要实现WebDriverWait等到下一次出现,如下所示:-

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)

# now find link
link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "See More Requests")))

#now perform click one of these above using java_script

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

使用Selenium和Python无法通过xpath定位元素

来自分类Dev

如何在Selenium for Python上使用XPATH语法选择元素?

来自分类Dev

Python ElementTree:使用XPath通过子文本查找元素

来自分类Dev

Python / Selenium-通过xpath查找元素-元素在那里,但未找到

来自分类Dev

如何找到xpath,元素的类别名称python selenium

来自分类Dev

在Selenium Python中通过XPath模式查找元素

来自分类Dev

Python Selenium无法使用绝对xpath div查找元素

来自分类Dev

python中的硒通过相对xpath查找元素

来自分类Dev

通过LXML通过XPATH查找元素-Python

来自分类Dev

通过Python Selenium WebDriver使用javascript语句查找网络元素

来自分类Dev

如何通过Selenium中的innerText查找元素-Python

来自分类Dev

Python Selenium:通过XPath查找元素,&nbsp; 问题

来自分类Dev

Selenium-Python Safari WebDriver-未通过xpath查找元素

来自分类Dev

Selenium:无法通过XPATH Python查找元素

来自分类Dev

使用Selenium和Python无法通过xpath定位元素

来自分类Dev

如何使用Selenium,python通过索引单击通过xpath找到的所有元素

来自分类Dev

如何使用Selenium python通过ID查找网站元素?

来自分类Dev

Selenium和Python:使用动态XPATH查找元素

来自分类Dev

如何使用Xpath Selenium和Python找到span元素

来自分类Dev

Python / Selenium-通过xpath查找元素-那里的元素,但未找到

来自分类Dev

如何使用Selenium Python通过链接文本查找元素

来自分类Dev

无需“通过...查找元素”即可填写WebForm Python Selenium

来自分类Dev

Python 3 + Selenium:如何通过xpath查找此元素?

来自分类Dev

Selenium与Python 3

来自分类Dev

如何在 Selenium 和 Python 中通过 xpath 选择元素?

来自分类Dev

如何通过Selenium、WebDriver和Python在页面中查找jQuery动态加载的元素

来自分类Dev

Xpath 没有使用 Splinter/Selenium Python 3 选择正确的元素

来自分类Dev

Python 中 Selenium 中的网页抓取 - 通过 xpath 或 id 查找元素返回空列表

来自分类Dev

如何为python/selenium中的动态元素编写xpath

Related 相关文章

  1. 1

    使用Selenium和Python无法通过xpath定位元素

  2. 2

    如何在Selenium for Python上使用XPATH语法选择元素?

  3. 3

    Python ElementTree:使用XPath通过子文本查找元素

  4. 4

    Python / Selenium-通过xpath查找元素-元素在那里,但未找到

  5. 5

    如何找到xpath,元素的类别名称python selenium

  6. 6

    在Selenium Python中通过XPath模式查找元素

  7. 7

    Python Selenium无法使用绝对xpath div查找元素

  8. 8

    python中的硒通过相对xpath查找元素

  9. 9

    通过LXML通过XPATH查找元素-Python

  10. 10

    通过Python Selenium WebDriver使用javascript语句查找网络元素

  11. 11

    如何通过Selenium中的innerText查找元素-Python

  12. 12

    Python Selenium:通过XPath查找元素,&nbsp; 问题

  13. 13

    Selenium-Python Safari WebDriver-未通过xpath查找元素

  14. 14

    Selenium:无法通过XPATH Python查找元素

  15. 15

    使用Selenium和Python无法通过xpath定位元素

  16. 16

    如何使用Selenium,python通过索引单击通过xpath找到的所有元素

  17. 17

    如何使用Selenium python通过ID查找网站元素?

  18. 18

    Selenium和Python:使用动态XPATH查找元素

  19. 19

    如何使用Xpath Selenium和Python找到span元素

  20. 20

    Python / Selenium-通过xpath查找元素-那里的元素,但未找到

  21. 21

    如何使用Selenium Python通过链接文本查找元素

  22. 22

    无需“通过...查找元素”即可填写WebForm Python Selenium

  23. 23

    Python 3 + Selenium:如何通过xpath查找此元素?

  24. 24

    Selenium与Python 3

  25. 25

    如何在 Selenium 和 Python 中通过 xpath 选择元素?

  26. 26

    如何通过Selenium、WebDriver和Python在页面中查找jQuery动态加载的元素

  27. 27

    Xpath 没有使用 Splinter/Selenium Python 3 选择正确的元素

  28. 28

    Python 中 Selenium 中的网页抓取 - 通过 xpath 或 id 查找元素返回空列表

  29. 29

    如何为python/selenium中的动态元素编写xpath

热门标签

归档