请你帮我一下。 我发现了问题而无法解决问题。 当我使用下一个代码时,浏览器已启动并且测试已通过:
import unittest
from selenium import webdriver
driver = webdriver.Chrome('D:\chromedriver\chromedriver.exe')
driver.get("site URL")
但同样的类和方法返回消息:“处理完成退出代码0”:
import unittest
from selenium import webdriver
class GlossaryPage(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path='D:\chromedriver\chromedriver.exe')
self.driver.maximize_window()
self.driver.implicitly_wait(10)
def NoLorem(self):
driver = self.driver
driver.get("site URL")
def tearDown(self):
unittest.quit()
如何使用第二种情况(使用方法和类)打开浏览器?
非常感谢您的帮助。
答案 0 :(得分:2)
使用 Selenium 处理Python的 unittest 模块时,您必须考虑以下几个事实:
executable_path
时,通过单引号和原始r
开关提供值。@Tests
名称时,测试以测试开头,例如 def test_NoLorem(self): get()
时,请确保传递有效的url
,例如的 http://www.python.org 强> quit()
中调用def tearDown(self):
方法时,通过 WebDriver 实例调用该方法为self.driver.quit()
。Tests
,如果__name__ ==“__ main __”: 这是您自己的代码,需要进行少量修改:
import unittest
from selenium import webdriver
class GlossaryPage(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
self.driver.maximize_window()
self.driver.implicitly_wait(10)
def test_NoLorem(self):
driver = self.driver
driver.get("http://www.python.org")
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
答案 1 :(得分:0)
我不确定,因为我还没有测试过,但我怀疑浏览器仍然是从第一个代码打开的。所以我建议这里使用driver.close()
在你离开脚本后正确终止进程。
import unittest
from selenium import webdriver
driver = webdriver.Chrome('D:\chromedriver\chromedriver.exe')
driver.get("site URL")
driver.close() # Must be there
同样,您可以在测试脚本中进行修改,以便将self.driver.close()
放入tearDown
方法。
答案 2 :(得分:0)
在unittest中,您必须将测试的代码放在名为
的方法中<Provider/>
而且我相信你想退出司机而不是单元测试? 尝试替换
行this.props.store = this.context.mobx.store
使用
test_<custom_text_here>