python - 是否可以一次运行一个 Selenium 测试的多个实例?

标签 python selenium webdriver

我做了一些研究,共识似乎表明,如果没有大量的知识和工作,这是不可能的。然而:

  • 是否可以同时在不同的选项卡中运行相同的测试?

如果是这样,我该怎么做?我正在使用 python 并尝试一次运行 3-5 个相同的测试。

这不是通用测试,因此我不关心它是否会中断干净的测试环境。

最佳答案

我认为你可以做到。但我觉得更好或更简单的方法是使用不同的窗口。话虽如此,我们可以使用 multithreadingmultiprocessingsubprocess 模块来并行(接近并行)触发任务。

多线程示例

让我向您展示一个关于如何使用 threading 模块生成多个测试的简单示例。

from selenium import webdriver
import threading
import time


def test_logic():
    driver = webdriver.Firefox()
    url = 'https://www.google.co.in'
    driver.get(url)
    # Implement your test logic
    time.sleep(2)
    driver.quit()

N = 5   # Number of browsers to spawn
thread_list = list()

# Start test
for i in range(N):
    t = threading.Thread(name='Test {}'.format(i), target=test_logic)
    t.start()
    time.sleep(1)
    print(t.name + ' started!')
    thread_list.append(t)

# Wait for all threads to complete
for thread in thread_list:
    thread.join()

print('Test completed!')

在这里,我生成了 5 个浏览器来同时运行测试用例。为了演示,我没有实现测试逻辑,而是设置了 2 秒的休眠时间。该代码将启动 5 个 firefox 浏览器(使用 python 2.7 测试),打开 google 并等待 2 秒然后退出。

日志:

Test 0 started!
Test 1 started!
Test 2 started!
Test 3 started!
Test 4 started!
Test completed!

Process finished with exit code 0

关于python - 是否可以一次运行一个 Selenium 测试的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617485/

相关文章:

python - 将 Python Selenium 测试结果写入文件

ruby - 如何以较低的速度运行 Selenium(通过 Capybara 使用)?

c# - 使用 Webdriver PageFactory 字段从未分配警告

python - 调用Python脚本

python - 如何重复每个数组元素的次数等于元素的值?

python - 从 pyodbc 调用过程时出错

python - 单击网页上的隐形按钮(谷歌地图)

java - 如何在 WebDriver(FirefoxDriver) 测试中关闭或禁用基本身份验证弹出窗口

java - 如何解决错误 "Not a valid XPath expression"

python - Django : unique name for object within foreign-key set