【问题标题】:Defined variable showing NameError when it is used with .click()与 .click() 一起使用时显示 NameError 的已定义变量
【发布时间】:2020-05-19 03:13:03
【问题描述】:

实际上我正在尝试构建一个机器人,但收到一个异常错误,即我的fbb_btn 未定义并在cmd 中显示NameError

from selenium import webdriver
from time import sleep

from secrets import username, password

class Webot:
    def __init__(self):
        self.driver=webdriver.Chrome()

    def login(self):
        self.driver.get('https://tinder.com')  

        sleep(2)

        fbb_btn= self.driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div/div/main/div/div[2]/div[2]/div/div/span/div[2]/button')

        fbb_btn.click()

fbb_btn.click() 回溯(最近一次通话最后): 文件“”,第 1 行,在 NameError: 名称 'fbb_btn' 未定义

【问题讨论】:

    标签: python-3.x visual-studio selenium selenium-webdriver bots


    【解决方案1】:

    通过查看您的错误,您提到的用于查找“fbb_btn”对象的 xpath 似乎无法通过代码找到按钮。

    尝试使用属性编写 xpath。您可以搜索如何使用属性编写动态 xpath 来解决此问题。

    这就是它给出错误的原因,因为“fbb_btn”未定义,因为该值设置为“无”,因为在网页上找不到给定的 xpath。

    【讨论】:

    • 但是当我在 cmd 中作为 >>bot.driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div/div/main 发出命令时/div/div[2]/div[2]/div/div/span/div[2]/button') 它给出正确的输出为
    【解决方案2】:

    我认为你给出了错误的 x-path, facebook.com 上没有该 x-path 的元素

    只有一个 x-path 直到 '//*[@id="content"]/div/div1/div/div'

    登录按钮的 X 路径://*[@id="u_0_4"]

    登录按钮的 X 路径://*[@id="u_0_13"]

    【讨论】:

    • 我实际上是在尝试 tinder,但不想在这里提及。我知道这是我的错误,但为该登录按钮提供 XPath 是相同的。你可以尝试一次火种吗?
    • 请清除我,你想点击哪个按钮,因为这个xpath不在网站上,请指定你想点击tinder网站上的哪个按钮
    • 没问题,我已经清除了错误。实际上,当我调用 fbb_btn.click() 时,我并没有将它初始化为 cmd 中的变量。所以它实际上就像这样 fbb=fbb_btn.click() 现在它工作正常。感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多