python - 使用 selenium 和 python3.8 加入 whatsapp 组时出现 NoSuchElementException
问题描述
我正在尝试使用 selenium 和 python 自动加入 WhatsApp 组。我几乎可以到达最后一页,但找不到加入群组按钮。这是我的python代码。请注意,首先我使用 5 秒的等待时间登录 WhatsApp。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# create webdriver object
driver = webdriver.safari.webdriver.WebDriver(quiet=False)
driver.get("https://web.whatsapp.com/")
import time
time.sleep(5)
driver.get("https://chat.whatsapp.com/invite/ANY_WA_GROUP_LINK")
# create action chain object
action = ActionChains(driver)
element = driver.find_element_by_link_text("Join Chat")
action.click(on_element = element)
action.perform()
element = driver.find_element_by_link_text("use WhatsApp Web")
action.click(on_element = element)
action.perform()
element = driver.find_element_by_link_text("Join group")
action.click(on_element = element)
action.perform()
以下是我得到的错误。
Traceback (most recent call last):
File "basic.py", line 25, in <module>
element = driver.find_element_by_link_text("Join group")
File "/Users/Home/WorkSpace/anaconda3/envs/env_auto/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 428, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
File "/Users/Home/WorkSpace/anaconda3/envs/env_auto/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "/Users/Home/WorkSpace/anaconda3/envs/env_auto/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/Home/WorkSpace/anaconda3/envs/env_auto/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message:
解决方案
如果您的定位器是正确的,您将错过之前的等待/延迟element = driver.find_element_by_link_text("Join Chat")
。
所以,只需尝试添加
time.sleep(5)
前
element = driver.find_element_by_link_text("Join Chat")
UPD:试试这个:
element = driver.find_element_by_xpath('//div[contains(text(),'Join group')]')
推荐阅读
- bash - 无法找出 Cygwin 别名的问题
- javascript - 当我订阅我的服务方法(执行查询)时,如何检索从 FireStore DB 检索到的每个文档的 UID?
- regex - 字符串的正则表达式
- python - 如何使用 python 对单词进行良好的标记化
- html - 无法使元素达到导航栏高度
- python - 用 docker 设置烧瓶
- python - 在 freeBSD 上安装 pandas
- api - 如何根据特定类别获取场地?
- ios-simulator - 关于iOS App开发中Imageview和button的链接
- xamarin.forms - Xamarin.forms 安排本地通知