2016-04-02 12 views
0

Bir test durumu verdim ve .py dosyası olarak kaydettim. Bir metin dosyasındaki verileri okumak için, test ettiğim web sitesine giriş yapmak için girdiler olarak düzenlemek istiyorum. Bir girişe izin vermesi gereken örnek kullanıcı adı ve şifre sırasıyla 1 ve pwd1'dir. Ancak bu değerleri bir dosyadan okuduğumda, okunan ilk satırlara erişerek, readlines() kullanarak, oturum açarken ve test durumu başarısız olduğunda başarısızlık gösterir. Okunan satırların okuduğu ilgili satırın boyutunu yazdırdığımda, boyutu olması gerekenden 1'dir. yani boyut = 2 iken, kullanıcı adımın boyutu 1, varsayım 1 olmalıdır. Bu test vakasında başarı elde etmek için yardıma ihtiyacınız var. =Düzenleme Selenium (python) dışa aktarılan bir test dosyasından veri okumak için bir vaka

/source.jsp

pwd1

(// girişi [değer @ şu şekildedir:

# -*- coding: utf-8 -*- 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoAlertPresentException 
import unittest, time, re 
import time 

class A6Test2(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Firefox() 
     self.driver.implicitly_wait(30) 
     self.base_url = "http://localhost:8080" 
     self.verificationErrors = [] 
     self.accept_next_alert = True 

    def test_a6_test2(self): 
     fh = open("cases.txt", "r") 
     data=fh.readlines() 
     uname1=data[1] 
     pwd1=data[2] 
     driver = self.driver 
     driver.get(self.base_url + data[0]) 
     driver.find_element_by_name("p_id").clear() 
     driver.find_element_by_name("p_id").send_keys(data[1]) 
     driver.find_element_by_name("p_passw").clear() 
     driver.find_element_by_name("p_passw").send_keys(data[2]) 
     time.sleep(5) 
     driver.find_element_by_xpath("(//input[@value='Submit'])[2]").click() 
     time.sleep(3) 
     driver.find_element_by_css_selector("input[type=\"SUBMIT\"]").click() 
     driver.find_element_by_link_text(data[5]).click() 
     driver.get(self.base_url + data[6]) 
     time.sleep(3) 
     driver.find_element_by_name("p_id").clear() 
     driver.find_element_by_name("p_id").send_keys(data[7]) 
     time.sleep(3) 
     driver.find_element_by_name("p_passw").clear() 
     driver.find_element_by_name("p_passw").send_keys(data[8]) 
     time.sleep(3) 
     driver.find_element_by_xpath("(//input[@value='Submit'])[2]").click() 
     time.sleep(3) 
     driver.find_element_by_css_selector("input[type=\"SUBMIT\"]").click() 
     driver.find_element_by_link_text(data[11]).click() 

    def is_element_present(self, how, what): 
     try: self.driver.find_element(by=how, value=what) 
     except NoSuchElementException as e: return False 
     return True 

    def is_alert_present(self): 
     try: self.driver.switch_to_alert() 
     except NoAlertPresentException as e: return False 
     return True 

    def close_alert_and_get_its_text(self): 
     try: 
      alert = self.driver.switch_to_alert() 
      alert_text = alert.text 
      if self.accept_next_alert: 
       alert.accept() 
      else: 
       alert.dismiss() 
      return alert_text 
     finally: self.accept_next_alert = True 

    def tearDown(self): 
     self.driver.quit() 
     self.assertEqual([], self.verificationErrors) 

if __name__ == "__main__": 
    unittest.main() 

Benim cases.txt geçerli: İşte benim kodudur 'Gönder']) [2]

input [type = \ "SUBMIT \"]

.210

/source.jsp

pwd1

(// girişi [değeri @ = 'Gönder']) [2]

giriş

Çıkış Yap [türü = \ "SUBMIT \"]

Çıkış yapın

cevap

0

data bir 2D dizi olarak görülebilir. Örnek için 2 endekslerini kullanarak erişmeyi deneyin:

driver.get(self.base_url + "/source.jsp") 
driver.find_element_by_name("d_id").clear() 
driver.find_element_by_name("d_id").send_keys(data[0][0:3]) 
driver.find_element_by_name("d_passw").clear() 
driver.find_element_by_name("d_passw").send_keys(data[1][0:5]) 

yukarıdaki kimliği ve şifre bazı sabit uzunlukları üstleniyor.

Ancak yukarıdaki gibi 3 ve 5 gibi önceden tanımlanmış değerler vermek istemiyorsanız uzunluk işlevini kullanmayı deneyin.

+0

Oh. Sadece bunu denedim. Çalışıyor. Teşekkür ederim. –

İlgili konular