你好stackoverflow社区,我正面临着一个问题。寻找 selenium 元素。我在python编程和使用谷歌浏览器。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
chrome_driver_path = "C:\Development\chromedriver.exe"
driver = webdriver.Chrome(service=Service(chrome_driver_path))
driver.get("https://tinder.com/")
time.sleep(5)
accept = driver.find_element(By.XPATH, value='//*[@id="c-1351236777"]/div/div[1]/div/div/main/div/div[2]/div/div[3]/div/div/button[2]')
accept.click()
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: 'value' must be a string
(Session info: chrome=110.0.5481.104)
Stacktrace:
Backtrace:
(No symbol) [0x002B6643]
(No symbol) [0x0024BE21]
(No symbol) [0x0014DA9D]
(No symbol) [0x001813F3]
(No symbol) [0x0018147B]
(No symbol) [0x001B8DFC]
(No symbol) [0x0019FDC4]
(No symbol) [0x001B6B09]
(No symbol) [0x0019FB76]
(No symbol) [0x001749C1]
(No symbol) [0x00175E5D]
GetHandleVerifier [0x0052A142+2497106]
GetHandleVerifier [0x005585D3+2686691]
GetHandleVerifier [0x0055BB9C+2700460]
GetHandleVerifier [0x00363B10+635936]
(No symbol) [0x00254A1F]
(No symbol) [0x0025A418]
(No symbol) [0x0025A505]
(No symbol) [0x0026508B]
BaseThreadInitThunk [0x762600F9+25]
RtlGetAppContainerNamedObjectPath [0x77167BBE+286]
RtlGetAppContainerNamedObjectPath [0x77167B8E+238]
(No symbol) [0x00000000]
这是代码,但它不能运行。我想这是因为html代码的body标记是关闭的,我需要用selenium打开它。实际上,如果我在手动检查代码时右键单击,我可以打开它。然后我单击"expand recursively",代码运行良好,但我不知道如何用python自动打开它。
1条答案
按热度按时间vuktfyat1#
I accept元素是一个动态元素,因此要单击***clickable***元素,需要为element_to_be_clickable()引入WebDriverWait,可以使用以下locator strategy: