在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 新手python+webdriver+selenium使用unittest單元測

新手python+webdriver+selenium使用unittest單元測試框架,無法正常switch_to.window

最近在學(xué)習(xí)unittest單元測試框架,之前調(diào)試好的測試腳本,發(fā)現(xiàn)放在這個框架中,無法正常switch_to.window,總是報錯無法定位到元素,個人感覺是因為窗口梅正常切換過去,新人求指教,謝謝,代碼如下:

main.py

import time
import unittest
import auto_test
suite = unittest.TestSuite()
suite.addTest(auto_test.Python_autotest('get_browser'))
suite.addTest(auto_test.Python_autotest('search'))
suite.addTest(auto_test.Python_autotest('user_login'))
suite.addTest(auto_test.Python_autotest('user_logout'))
if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite)

auto_test.py

from selenium import webdriver
import time
import unittest
class Python_autotest(unittest.TestCase):
    def setUp(self,driver = webdriver.Firefox()):
        print('Test is start')
        self.driver = driver
    def get_browser(self):
        self.driver.get("https://www.baidu.com/")
    def search(self):
        try:
            self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys('segmentfault')
            self.driver.find_element_by_xpath('//*[@id="su"]').click()
        except Exception:
            print('No found everything, sorry!')
        else:
            time.sleep(1)
            self.driver.find_element_by_xpath("/html/body/div[1]/div[5]/div[1]/div[3]/div[1]/h3/a").click()
    def user_login(self):
        self.driver.switch_to.window(self.driver.window_handles[-1])
        time.sleep(3)
        self.driver.find_element_by_xpath('/html/body/div[4]/div/div/div[1]/div[2]/a[1]').click()#點擊頁面中的前端菜單欄
    def user_logout(self):
        self.driver.quit()
    def tearDown(self):
        print('Test is finish')
if __name__ == '__main__':
    unittest.main()
        
回答
編輯回答
老梗

找到錯誤原因了,因為執(zhí)行速度太快,還沒加載完第二個窗口就執(zhí)行了switch_to.window操作,所以沒有跳轉(zhuǎn)成功,加個time.sleep(1)等待一下就好了。還是自己太馬虎,新手一報錯就不知道怎么解決,希望以后吸取經(jīng)驗教訓(xùn)。

2017年8月1日 07:11