gpt4 book ai didi

python - 如何在 Pytest 中将参数传递给 Selenium 测试函数?

转载 作者:行者123 更新时间:2023-12-01 08:12:21 25 4
gpt4 key购买 nike

我希望让我的测试更加灵活。例如,我有一个 _test_login_ ,可以与多个不同的登录凭据一起重复使用。如何将它们作为参数传递而不是对其进行硬编码?

我现在拥有的:

from selenium import webdriver
import pytest
def test_login():
driver = webdriver.Chrome()
driver.get("https://semantic-ui.com/examples/login.html")

emailBox = driver.find_element_by_name("email")
pwBox = driver.find_element_by_name("password")

emailBox.send_keys("someLogin")
pwBox.send_keys("somePW")

如何用更灵活的内容替换最后两行中的字符串文字?

我想要这样的东西:

from selenium import webdriver
import pytest
def test_login(specifiedEmail, specifiedPW):
driver = webdriver.Chrome()
driver.get("https://semantic-ui.com/examples/login.html")

emailBox = driver.find_element_by_name("email")
pwBox = driver.find_element_by_name("password")

emailBox.send_keys(specifiedEmail)
pwBox.send_keys(specificedPW)

您能否解释一下如何通过将脚本调用为:

pytest main.py *指定电子邮件* *指定密码*

最佳答案

尝试使用sys.arg

import sys
for arg in sys.argv:
print(arg)
print ("email:" + sys.argv[2])
print ("password:" + sys.argv[3])

您的代码如下所示:

from selenium import webdriver
import pytest
import sys

def test_login(specifiedEmail, specifiedPW):
driver = webdriver.Chrome()
driver.get("https://semantic-ui.com/examples/login.html")

emailBox = driver.find_element_by_name("email")
pwBox = driver.find_element_by_name("password")

emailBox.send_keys(sys.argv[2])
pwBox.send_keys(sys.argv[3])

关于python - 如何在 Pytest 中将参数传递给 Selenium 测试函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55164756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com