InvalidArgumentException:消息:无效参数:“using”必须是字符串

2024-05-09

我对 python 很陌生,试图创建可重用的代码。当我尝试通过传递 Login 类下使用的所有参数来调用 test_main.py 中的 Login 类和函数 login_user 时,我收到错误 InvalidArgumentException: Message: invalid argument: 'using' must be a string。

在 pytest 上运行的 test_main.py 文件。

Locators_test 是 test_Locators.py 文件的类,其中我拥有所有 xpath

test_Locators.py

class Locators_test():

loginlink_xpath = "//a[@id='login-link']"
login_email = "xxxxx"
login_password = "xxxxx"
loginemail_id = "dnn_ctr1179_Login_txtEmail"
loginpassword_id = "dnn_ctr1179_Login_txtPassword"
clicklogin_id = "dnn_ctr1179_Login_btnLogin"

测试登录.py

from Smoketest.locatorfile.test_Locators import Locators_test

class Login():

def __init__(self,driver):

    self.driver = driver

def login_user(self,driver):
    try:
        loginButton = self.driver.find_element((By.XPATH, Locators_test.loginlink_xpath))
        while loginButton.click() is True:
            break
        time.sleep(3)
        self.driver.execute_script("window.scrollBy(0,300);")

        EmailField = self.driver.find_element((By.ID, Locators_test.loginemail_id))
        EmailField.send_keys(Locators_test.login_email)

        PasswordField = self.driver.find_element((By.ID, Locators_test.loginpassword_id))
        PasswordField.send_keys(Locators_test.login_password)

        ClickLogin = self.driver.find_element((By.ID, Locators_test.clicklogin_id))
        while ClickLogin.click() is True:
            break

        time.sleep(5)

        userName = self.driver.find_element((By.XPATH, Locators_test.username_xpath))
        print("Logged in as", userName.text)



    except StaleElementReferenceException or ElementClickInterceptedException or TimeoutException as ex:
        print(ex.message)

测试主程序.py

    def test_setup():
        driver = webdriver.Chrome(executable_path= Locators_test.browser_path)
        driver.maximize_window()
        driver.delete_all_cookies()
        driver.get(homePage)
        driver.implicitly_wait(5)
        yield
        print("test complete")


def test_login(test_setup):

    from Smoketest.pages.test_login import Login

    lo = Login(driver)
lo.login_user(((Locators_test.loginlink_xpath,Locators_test.loginemail_id,Locators_test.login_email,Locators_test.loginpassword_id,Locators_test.login_password,Locators_test.clicklogin_id,Locators_test.username_xpath)))

缩进都很好


我自己修复了这个问题,从行中删除了多余的一对括号

loginButton = self.driver.find_element((By.XPATH, Locators_test.loginlink_xpath))

正确的方法是

loginButton = self.driver.find_element(By.XPATH, Locators_test.loginlink_xpath)

ps:这适用于所有行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

InvalidArgumentException:消息:无效参数:“using”必须是字符串 的相关文章

随机推荐

  • WinRT 作为 Win32 API 的替代品

    互联网上有很多博客说 winrt 是 win32 api 的替代品 这是真的吗 甚至我读到为 Metro 应用程序开发的应用程序使用 winrt 所以我理解正确吗 那些 Metro 应用程序必须经过 winrt 而经典应用程序必须经过 wi
  • 在 Apache 上设置 websocket?

    所以我正在对 websockets 进行一些研究 我有几个问题似乎找不到明确的答案 如何在 Linux 服务器上设置 Web 套接字 有 Apache 模块吗 我可以吗have使用第 3 方 PHP 代码或类似代码 除了浏览器兼容性之外 问
  • 在 javafx 中注册鼠标处理程序,但处理程序不是内联的

    我有一个 JavaFX 应用程序变得有点大 我想保持代码的可读性 我有一个折线图 我希望内置缩放功能 该功能在单击鼠标时发生 我知道我需要向图表注册鼠标侦听器 我无法从 Oracle 示例中弄清楚什么 即如下所示 http docs ora
  • 如何使用python读取最后一行的特定位置

    我有一个太大的 txt 文件 并且有几行类似的行 如下所示 字1 字2 字3 字4 553 75 我对位置 4 值 感兴趣 即最后一行 553 75 我的文件文本 word1 word2 word3 word4 553 20 word1 w
  • “firebase 部署——仅托管”突然失败,并显示“错误:无法列出 的功能”

    我的 Firebase 托管部署突然开始在我的 Github CI 工作流程和本地计算机中失败 firebase deploy only hosting Deploying to
  • 通过 CTFontRef 或 CGFontRef 对象中的字形索引获取 unicode 字符

    CTFontRef 提供了出色的方法 例如CTFontGetGlyphsForCharacters用于将字符映射到字形 我的问题是 有没有逆映射的方法 也就是说 我可以通过给定的字形获取字符吗 自从我发现有一个CTFontCopyChara
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 在 JSON 对象中强制执行非空字段

    我们的 REST API 接收一些 JSON 对象输入 其中某些字段要求不为空 这些可以是字符串 整数 甚至可以是其他一些类实例作为参考 我们正在尝试找到一种方法来强制这些字段不为空 而不是在 API 中进行空检查的正确方法 当前的 if
  • Informix 过程 — 如何返回空表?

    我需要创建一个 Informix 过程 如果找到一些值 则返回一个包含行的表 如果没有找到值 则返回一个空表 我知道如何返回有行的表 但我不知道如何返回空表 有人可以帮忙吗 CREATE row type AType id VARCHAR
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • 在多个数据库的主目录中配置 .my.cnf 不起作用。适用于单个数据库

    这是我的 my cnf 文件 client user user1 password somePasswd1 database someDb client2 user user1 password somePassed2 database s
  • 如何将新的 Kubernetes Minion 添加到当前集群

    我有一个运行在 3 台服务器上的 Kubernetes 集群 一台主服务器和 2 台服务器 我想添加另一个小黄人 是否可以添加 Minion 而无需再次进行完整安装 到目前为止 在寻找执行此操作的指南时 我只能找到有关建立整个集群的优秀指南
  • 使用 k6 测试 graphql 订阅

    是否可以使用 k6 框架测试 graphql 订阅 我尝试这样做 但没有取得太大成功 还尝试使用 k6 websockets 来做到这一点 但没有帮助 谢谢 Grapqhql Subscription是基于Websockets所以理论上可以
  • 上次更新arm64-v8a后,模拟器在M1 Mac上显示离线

    昨天模拟器运行得很好 系统镜像为arm64 v8a 我不太记得工作系统映像的版本名称 但是昨天我接受了 ARM 64 系统映像的更新 版本名称是 S 我可以从 AVD 管理器启动模拟器 当我按 运行应用程序 按钮时模拟器也会启动 但是 该应
  • F# 获取随机数列表

    我正在尝试用随机数填充列表 但很难获得随机数部分 我现在打印出一个随机数 10 次 我想要的是打印出 10 个不同的随机数 let a new System Random Next 1 1000 let listOfSquares for
  • 选项包装值是一个好的模式吗?

    我最近写了以下 Scala 代码 val f File pretend this file came from somewhere val foo toFoo io Source fromFile f mkString 我真的不喜欢这种方式
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • GeoJSON 要素坐标未显示在 OpenLayers 地图上

    我正在尝试显示一个GeoJSON地图上的多边形 我使用了 OpenLayers 提供的示例以及以下数据 但仅显示第二个多边形 var geojsonObject type FeatureCollection crs type name fe
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept