是否有命令可以在不使用框架的情况下运行硒测试? 例如 pytest foo_test.py
我的本地计算机上需要什么才能运行以下测试?我很困惑,因为这似乎唯一的要求是 chromedriver,但我不知道使用哪个命令来执行实际测试。
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=capa)
wait = WebDriverWait(driver, 20)
driver.get('http://stackoverflow.com/')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions')))
driver.execute_script("window.stop();")
以下是您问题的答案:
正如你问Is there a command to run selenium tests without using a framework
,答案是Yes
。
简单来说,python中存在某些框架,如pytest
,unittest
等,用于构建测试执行和解释测试结果。每个框架都有自己的优势。当代码库变得笨重时,框架可以帮助我们进行安排。但是使用框架不是强制性的。
关于您的代码,我在您的代码中没有看到任何重大错误,但是使用 Selenium 3.x.x 您需要从此处下载chromedriver
并将其保存在您的计算机中。初始化WebDriver
实例时,您需要提及chromedriver
的绝对路径,如下所示。
这是您自己的代码,其中包含一些简单的调整,在我的最后效果很好:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=capa,executable_path="C:\your_directory\chromedriver.exe")
wait = WebDriverWait(driver, 20)
driver.get('http://stackoverflow.com/')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions')))
driver.execute_script("window.stop();")
让我知道这是否回答了您的问题。
您正在使用的实际 2 个要求。硒本身是一个要求,然后是你提到的chromedriver。该文件只是一个python文件,因此您可以通过执行python foo_test.py
来运行它。还可以选择使用像Unittest这样的框架,这对于查看测试结果很有用。
Selenium本身不是一个"测试框架",它是一个允许用户与Web浏览器交互的命令库。硒可用于网络抓取或自动化任务以及测试目的。