【问题标题】:Getting TypeError: 'str' object is not callable [closed]获取TypeError:'str'对象不可调用[关闭]
【发布时间】:2018-03-27 13:59:10
【问题描述】:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver

class LoginPage():

    def __init__(self, driver):
        self.driver = driver

    def get_username_textbox(self):
        try:
            return self.driver.find_element_by_id('email')
        except:
            return None

    def get_password_textbox(self):
        try:
            return self.driver.find_element_by_id('pass')
        except:
            return None

    def get_login_button(self):
        try:
            return self.driver.find_element_by_id("loginbutton")
        except:
            return None

      def wait_for_login_page(self):
        wait = WebDriverWait(self.driver, 30)
        element = self.driver.title("Facebook – log in or sign up")
        wait.until(EC.title_is(element))

【问题讨论】:

  • 请五个使用整个 Traceback 或错误字符串
  • self = def wait_for_login_page(self): wait = WebDriverWait(self.driver, 30) \x1b[1m> element = self.driver.title ("Facebook \u2013 登录或注册")\x1b[0m E TypeError: 'str' object is not callable lib\ui\login_page.py:35: TypeError
  • ^ 如果您有更多细节可以提供 Santosh,请将其编辑到问题中,而不是将其添加到 cmets。

标签: python selenium


【解决方案1】:

driver.title 返回一个字符串 我相信你想要做的更符合:

assert self.driver.title == "Facebook – log in or sign up"

【讨论】:

  • 完美.. 非常感谢您的解决方案。它就像一个魅力:)
【解决方案2】:

EC 的 title_is 方法只接受文本/字符串参数。

你可以如下改变它。

def wait_for_login_page(self):
    wait = WebDriverWait(self.driver, 30)
    wait.until(EC.title_is("Facebook – log in or sign up"))

【讨论】:

  • 这非常适合我的代码。谢谢你:)
猜你喜欢
  • 2015-03-07
  • 2019-03-05
  • 1970-01-01
  • 2023-03-06
  • 2015-11-11
  • 2020-09-16
  • 2019-06-11
  • 1970-01-01
相关资源
最近更新 更多