gpt4 book ai didi

python - 如何向自动生成的 Python Selenium 脚本添加参数

转载 作者:行者123 更新时间:2023-12-01 04:38:26 28 4
gpt4 key购买 nike

我是 Selenium 新手,正在尝试了解如何将参数传递给 selenium 脚本。

通常,如果我使用这样的参数调用 python 脚本python myprogram.py myparameter从命令行,我可以查找参数 系统参数[1](假设我导入sys)

自动生成的 selenium 脚本如下所示:(我已经尝试将 sys.argv[1] 添加到其中)

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
import sys


class ParaN(unittest.TestCase):


def setUp(self):

self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "https://www.google.de/"
self.verificationErrors = []
self.accept_next_alert = True

def test_para(self):

driver = self.driver
driver.get(self.base_url + "?q=" + sys.argv[1])
print(driver.current_url )




def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException, e: return False
return True

def is_alert_present(self):
try: self.driver.switch_to_alert()
except NoAlertPresentException, e: return False
return True

def close_alert_and_get_its_text(self):
try:
alert = self.driver.switch_to_alert()
alert_text = alert.text
if self.accept_next_alert:
alert.accept()
else:
alert.dismiss()
return alert_text
finally: self.accept_next_alert = True

def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
unittest.main()

此示例应该使用参数作为搜索词来调用 google。

但是unittest.main()不接受参数,我还不明白unittest.main()运行时会发生什么。

向此添加参数的最佳方法是什么?

最佳答案

unittest.main()解析您在命令行上传递的所有内容:

A command-line program that loads a set of tests from module and runs them; this is primarily for making test modules conveniently executable.

一种替代方法是使用 TestLoader。替换:

unittest.main()

与:

runner = unittest.TextTestRunner()
suite = unittest.TestLoader().loadTestsFromTestCase(ParaN)
runner.run(suite)

关于python - 如何向自动生成的 Python Selenium 脚本添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296129/

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