目前在学习自动化测试,遇到问题如下,冥思苦想不得寸进好一阵子。
具体情况:两个模块,basepage.py封装了selenium的一系列方法。再由测试模块test_baidusearch进行调用。但是运行却屡屡出错。打开的浏览器根本无法接受传入的数据。求前辈指点迷津。
文件:basepage.py
from selenium import webdriver
import time
class Base_Page():
def openurl(self):
self.driver = webdriver.Firefox(executable_path='../browser/geckodriver.exe')
time.sleep(3)
self.driver.quit()
def inputstr(self,word):
self.driver.find_element('id','kw').clear()
self.driver.find_element('id','kw').send_keys(word)
self.driver.find_element('id','su').click()
time.sleep(3)
def gettitle(self):
return self.driver.title
def browserquit(self):
self.driver.quit()
文件2:test_baidusearch.py
from basepage.basepage import Base_Page
class Test_Login():
def test_login_1(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('selenium')
title = self.browser.gettitle()
assert 'selenium' in title
self.browser.browserquit()
def test_login_2(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('appium')
title = self.browser.gettitle()
assert 'appium' in title
self.browser.browserquit()
def test_login_3(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('autotesting')
title = self.browser.gettitle()
assert 'autotesting' in title
self.browser.browserquit()
该回答引用GPT:根据你提供的代码,我看到你在Base_Page
类中的openurl
方法中使用了self.driver.quit()
,这会导致浏览器在打开后立即关闭。因此,当你在测试模块中调用inputstr
方法时,浏览器已经关闭了,无法接受传入的数据。
你可以将self.driver.quit()
移动到browserquit
方法中,这样在测试模块中调用browserquit
方法时,浏览器才会关闭。另外,建议在inputstr
方法中添加等待页面加载完成的代码,以确保页面加载完成后再进行后续操作。
修改后的代码如下:
basepage.py
from selenium import webdriver
import time
class Base_Page():
def openurl(self):
self.driver = webdriver.Firefox(executable_path='../browser/geckodriver.exe')
time.sleep(3)
def inputstr(self,word):
self.driver.find_element('id','kw').clear()
self.driver.find_element('id','kw').send_keys(word)
self.driver.find_element('id','su').click()
time.sleep(5) # 等待页面加载完成
def gettitle(self):
return self.driver.title
def browserquit(self):
self.driver.quit()
test_baidusearch.py
from basepage.basepage import Base_Page
class Test_Login():
def test_login_1(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('selenium')
title = self.browser.gettitle()
assert 'selenium' in title
self.browser.browserquit()
def test_login_2(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('appium')
title = self.browser.gettitle()
assert 'appium' in title
self.browser.browserquit()
def test_login_3(self):
self.browser = Base_Page()
self.browser.openurl()
self.browser.inputstr('autotesting')
title = self.browser.gettitle()
assert 'autotesting' in title
self.browser.browserquit()
希望能帮到你解决问题。