2017-08-09 5 views
0

私はウェブサイトlive.guru99.comをテストしようとしています。テストA、B、Cの3つの機能をテストしています。exeがルートフォルダにあるgeckodriverを使ってコードをテストしています。しかしPythonを使用してセレンでテストを逃した

from selenium import webdriver 
import time 
import unittest 

class Guru99BankTest(unittest.TestCase): 

    @classmethod 
    def setUp(self): 
     self.driver = webdriver.Firefox() 

    def test_C(self): 
     driver = self.driver 
     driver.get("http://live.guru99.com/") 

     driver.find_element_by_link_text('Mobile').click() 

     listed_prd_el = driver.find_element_by_xpath(
      "//a[contains(text(), 'Sony Xperia')]/ancestor::div[@class = 'product-info']") 
     listed_prd_el.find_element_by_tag_name('button').click() 

     qty = driver.find_element_by_xpath("//input[@title='Qty']") 

     qty.clear() 
     qty.send_keys('1000') 

     self.assertEqual(qty.get_attribute('value'), '1000') 

     driver.find_element_by_xpath("//button[@title='Update']").click() 

     time.sleep(3) 
     self.assertIn('products cannot be ordered in requested quantity', 
         driver.find_element_by_class_name('error-msg').text) 

     driver.find_element_by_xpath("//button[@title='Empty Cart']").click() 

     time.sleep(3) 

     self.assertIn('no items in your shopping cart', 
         driver.find_element_by_class_name('cart-empty').text) 

    def test_A(self): 
     driver = self.driver 

     driver.get("http://live.guru99.com/") 

     self.assertIn("This is demo site for", driver.page_source) 

     driver.find_element_by_link_text('Mobile').click() 

     self.assertEqual("Mobile", driver.title) 

    def test_B(self): 
     driver = self.driver 

     driver.get("http://live.guru99.com/") 

     driver.find_element_by_link_text('Mobile').click() 

     driver.find_element_by_xpath("//select[@title='Sort By']/option[contains(text(), 'Name')]").click() 

     product_names = ([e.text for e in driver.find_elements_by_xpath("//h2[@class='product-name']")]) 

     self.assertEqual(product_names, sorted(product_names)) 

     listed_prd_el = driver.find_element_by_xpath(
      "//a[contains(text(), 'Sony Xperia')]/ancestor::div[@class = 'product-info']") 
     listed_price = listed_prd_el.find_element_by_class_name("price").text 

     listed_prd_el.find_element_by_tag_name('a').click() 

     prod_price = driver.find_element_by_xpath('//span[@class="price"]').text 

     self.assertEqual(listed_price, prod_price) 



    @classmethod 
    def tearDown(self): 
     self.driver.close() 

def custom_suite(): 
    suite = unittest.TestSuite() 
    suite.addTest(Guru99BankTest('test_A')) 
    suite.addTest(Guru99BankTest('test_B')) 
    suite.addTest(Guru99BankTest('test_C')) 
    return suite 

if __name__ == "__main__": 
    runner = unittest.TextTestRunner() 
    runner.run(custom_suite()) 

ブラウザは一つだけの時間を開いて、私が間違っているのではない3 times.Whatことを私が見つけ、次のように

コードはありますか?私はunittestsでかなり新しいので、私と一緒に耐えてください。

+0

同じ名前のtest_Bという2つのテストがありますが、それは意図的ですか? – Satish

+0

@michaelsatish申し訳ありません、タイプミスでした –

答えて

1

それは私のために働いた。私は、test_bが複製されたので、最後のテストをtest_Cに変更しました。しかし、それが実際の状況かどうかわからないと言っている

+0

私はコンソールで1回のテストを実行しました –

+0

クロムで実行してみてください。違いが出るのではないかと思っています。 Chromeで作業していましたしかし、私はブラウザのタイプとインスタンスがフローを決定するとは思わない – Satish

関連する問題