【问题标题】:Unable to Locate Button path on a webpage using Selenium (Python)无法使用 Selenium (Python) 在网页上找到按钮路径
【发布时间】:2019-08-31 00:45:17
【问题描述】:

我正在尝试自动登录名为 Smarkets 的“投注”网站。我正在使用 Selenium(使用 Python)来执行此操作。我可以让我的代码导航到网站“https://smarkets.com”,单击右上角的小"Log in" 按钮,然后在弹出的窗口中自动输入我的电子邮件和密码。下一阶段是让我的代码自动单击该弹出窗口上的 "Log In" 大按钮,但我似乎无法找到它。检查此按钮的 HTML 元素会显示以下内容:

<button class = "micro-button -accented "  type = "submit">Log In</button>==$0

没有别的了——没有IDdiv class name等。从上面的代码行中,我发现Xpath是:

//*[@id="smarkets"]/div[3]/div/div/div[1]/form/button

所以在我的代码中,我试图通过复制上面的 Xpath 来找到这个按钮:

signInButton = browser.find_element_by_xpath("//*[@id="smarkets"]/div[3]/div/div/div[1]/form/button")

但是,当我运行此代码时,出现语法错误"invalid syntax"。请帮忙 - 我花了几个小时试图了解我哪里出错了......

【问题讨论】:

    标签: python selenium selenium-webdriver xpath webdriver


    【解决方案1】:

    我认为你的问题在于引号,你可以试试这个吗?

    signInButton = browser.find_element_by_xpath("""//*[@id="smarkets"]/div[3]/div/div/div[1]/form/button""")
    

    syntax error 的原因始终是代码方面的问题,而不是服务器或任何其他类型的错误。

    python 中的三引号允许您格式化字符串中的任何(几乎)字符。

    如果添加f,则可以包含偶数变量

    f"""Text text {your_variable}"""

    更多信息here

    【讨论】:

    • 非常感谢——终于成功了!你能解释一下为什么用两个双引号括起来吗?
    • 当然,更新我的答案
    【解决方案2】:

    使用single quotes 将属性值包装在xpath 中并将整个xpath 包装在double quotes 中始终是最佳做法,这样您就不会遇到此类问题。

    示例代码:

    普通的xpath

    //标签[@attribute='属性值']

    在代码中使用:

    # when using above xpath in python code
    driver.find_element_by_xpath("//tag[@attribute='attribute value']")
    

    因此,在您的情况下,只需更改以下行。

    signInButton = browser.find_element_by_xpath("//*[@id='smarkets']/div[3]/div/div/div[1]/form/button")
    

    如果你真的想在你的 xpath 中使用双引号,那么你可以使用三引号来包装整个 xpath,正如@Jose Angel Sanchez 提到的那样,但我看不出你想要复杂化的原因。

    【讨论】:

      【解决方案3】:

      我试过后,你能试试这个代码吗

      browser.find_element_by_xpath("//a[text()='Log in']").click();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 2020-06-12
        • 2021-06-23
        • 2020-09-26
        • 2020-08-22
        • 1970-01-01
        相关资源
        最近更新 更多