【问题标题】:selenium - find element by class name?selenium - 按类名查找元素?
【发布时间】:2023-01-03 16:08:19
【问题描述】:

我不确定我是否使用了正确的方法来点击我现在想要点击的内容。 我试图点击“战斗”,然后点击合适的动物类型。

import autogui, sys, time, webbrowser, selenium
import undetected_chromedriver.v2 as uc
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common import action_chains
from selenium.webdriver.common.by import By

#Open Browser and visit website.
driver = uc.Chrome()
driver.get('https://www.iqrpg.com/game.html')
time.sleep(5)

#Complete username and password fields + Login
userN = 'seltest'
passW = 'seltest'
driver.find_element(By.NAME, "login_username").send_keys(userN)
driver.find_element(By.NAME, "login_password").send_keys(passW + Keys.ENTER)
time.sleep(2)
#find Battling and click to begin fight
driver.find_element(By.CLASS_NAME("Battling")).Click(); 

我试图点击的检查元素如下:

<a data-v-ae2d03a4="" href="/areas" class="">Battling</a>

类型错误:str 对象不可调用

尝试了很多过时的和最新的网络元素搜索,我也尝试调用'a','area's,链接本身到/areas,一大堆东西,我只是不知道我在做什么似乎

【问题讨论】:

    标签: selenium selenium-webdriver xpath selenium-chromedriver


    【解决方案1】:

    Battling 不是类名。是文字内容。
    您可以通过以下方式找到该元素:

    driver.find_element(By.XPATH,"//a[contains(text(),'Battling')]")).click()
    

    要么

    driver.find_element(By.XPATH,"//a[@href='/areas']")).click()
    

    另外,不要混合其他语言风格。我看到你这里所有的代码都是用 Python 写的,而 .Click();C# 风格...

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2015-07-12
      • 2015-01-18
      • 2020-05-19
      • 2022-01-14
      • 2021-08-09
      • 1970-01-01
      • 2016-06-08
      • 2021-09-20
      相关资源
      最近更新 更多