class BasicOperations: def __init__(self): self.seleniumLibrary = SeleniumLibrary() def openBrowserWithSpectrePage(self, browser="ff", port="8080"): ''' Opens default spectre page ''' self.seleniumLibrary.open_browser("http://spectre.dyndns-server.com:%s/" % port, browser) def openUrl(self, url): ''' Opens given url in active browser window. ''' sel = self.seleniumLibrary._selenium sel.open('http://spectre.dyndns-server.com:8080/scrumzu/pbis') def openScrumzuAtLocalhost(self, browser="ff", port="8080"): ''' Opens scrumzu at localhost ''' self.seleniumLibrary.open_browser("http://localhost:%s/scrumzu" % port, browser) def closeBrowser(self): self.seleniumLibrary.close_all_browsers()
def test_redact_black(self): sl = SeleniumLibrary() sl.open_browser("http://172.26.1.60/Kofax/KFS/ThinClient/login.html", "ie") sl._current_browser().maximize_window() sl.input_text("id:userid", "kcauto01") sl.input_password("id:password", "k00fax") sl.click_button("id:submitspan") time.sleep(1) sl.click_link("id:menu-new-doc") time.sleep(1) sl.click_link( "//div[contains(text(),'Kofax Capture')]//ancestor::a[1]") time.sleep(3) sl.click_link("id:btn-scan-setting") time.sleep(1) sl.click_link("id:linkDownloadFile") action = ActionChains(self.lib.driver) action.key_down(getattr(Keys, 'ALT')).send_keys() sl.close_browser()
class Redirects(RootClass): def __init__(self): self.selLib = SeleniumLibrary() def shut_Down_All_Browsers(self): self.selLib.close_all_browsers() self._info("All browsers closed") def start_selenium_server_XX(self, profile=None): self.selLib.start_selenium_server() def start_browser(self, url,browser=None): if browser == None: browser = 'ie' self.selLib.set_selenium_timeout(TIMEOUT) self.selLib.open_browser(url, browser) def get_ie(self, shell): """ get IE browser as object """ for win in shell.Windows(): try: if win.Name == "Windows Internet Explorer": return win except AttributeError: #this is to handle some <unknown> COMObject pass return None def createReport(self): body = "<html> <body>" \ "<h1>Redirects Tests Results</h1> <p>%s</p>""</body> </html>" %(LOCAL_TIME) REDIRECT_REPORT_FILE.write(body) REDIRECT_LOG_FILE.write("Redirects Tests Results: %s \n" %LOCAL_TIME) def get_url(self, url, address): ie = self.get_ie(SHELL) if ie: if str(ie.LocationURL) == address: self._info("PASS: address %s is redirected to %s" % (url, address)) REDIRECT_LOG_FILE.write("PASS: address %s is redirected to %s\n" % (url, address)) REDIRECT_REPORT_FILE.write("<ul><li><font size='3'color='green'><b>PASSED</b></font>\tAddress: \ <b><a href=%s>%s</a></b> \n \tredirects to: <b><a href=%s>%s</a></b>\n\n</li></ul>" % (url,url, address,address)) else: self._info('FAIL: address %s is not redirected to %s' % (url, address)) REDIRECT_LOG_FILE.write('FAIL: address %s is not redirected to %s\n' % (url, address)) REDIRECT_REPORT_FILE.write("<ul><li><font size='3'color='red'><b>FAILED</b></font>\tAddress: \ <b><a href=%s>%s</a></b> \n \tis not redirected to: <b><a href=%s>%s</a></b>\n\n</li></ul>" % (url,url, address,address)) REDIRECT_REPORT_FILE.write("<ul><li><font size='3'color='red'><b>FAILED</b></font>\tAddress: \ <b><a href=%s>%s</a></b> \n \tis redirected to: <b><a href=%s>%s</a></b>\n\n</li></ul>" % (url,url, ie.LocationURL,ie.LocationURL)) #REDIRECT_REPORT_FILE.close() else: print "no ie window" def verify_Redirects(self, input_file): """ redirect_input_file: url_1 url_2 #url_1 url_2 (...) url_1 ->origin url_2 -> target if #: skip the line """ redirects_input_file = open(input_file, 'r+') searchPattern = re.compile(r'(^[^\/#].*?)\s(.*$)') # in reg_exp ? is used for non-greedy search pattern - without ?, first match will cover whole line (up to $) due to .* for line in redirects_input_file: search = re.search(searchPattern, line) if search != None: #if url_1 has no 'http://' prefix, then add one: if search.group(1).find('://') == -1: url_1 = 'http://%s' % (search.group(1),) else: url_1 = search.group(1) #the same here, with url_2 (target) if search.group(2).find('://') == -1: url_2 = 'http://%s' % (search.group(2),) else: url_2 = search.group(2) #finally, start browser: self.start_browser(url_1, browser='ie') #verify if addresses are redirected as expected: self.get_url(url_1, url_2) #afterall, close/shutdown browser: self.shut_Down_All_Browsers() self.selLib.close_browser() else: self._info("Skipping...")
"""页面上的输入事件""" def __init__(self, type, location, value): self.type = type.lower() self.location = location self.value = value super().__init__() def pageinput(self): """点击页面上的输入框""" tc = self.suite.tests.create("点击输入框") #调试代码 # tc.keywords.create("Open Browser", args=["http://oa.tahoecn.com/ekp/login.jsp", "Chrome"]) if self.type == "text": tc.keywords.create("Input Text", args=[self.location, self.value]) elif self.type == "password": tc.keywords.create("Input Password", args=[self.location, self.value]) def run(self): self.pageinput() self.suite.run() if __name__ == '__main__': # suite = TahoeLoginOA("http://oa.tahoecn.com/ekp/login.jsp","Chrome","ysl","123456") # suite = PageClick("LINK","地图","百度地图") # suite = PageInput("TEXT","id=j_username","YSL") # suite.run() s = SeleniumLibrary() s.open_browser("http://www.baidu.com", "Chrome")
class BasicOperations: def __init__(self): self.seleniumLibrary = SeleniumLibrary() def openScrumzuAtSpectre(self, browser="ff", port=DEFAULT_PORT): ''' Opens default spectre page ''' self.seleniumLibrary.set_selenium_timeout(30) self.seleniumLibrary.open_browser("http://spectre.dyndns-server.com:%s/" % port, browser) def openScrumzuAtLocalhost(self, browser="opera", port=DEFAULT_PORT): ''' Opens scrumzu at localhost ''' self.seleniumLibrary.set_selenium_timeout(30) self.seleniumLibrary.open_browser("http://localhost:%s/scrumzu" % port, browser) def clickOn(self, btnId): sel = self.seleniumLibrary._selenium sel.click("css=[id='%s']" % btnId) time.sleep(8) if('submit' in btnId): sel.wait_for_page_to_load(DEFAULT_TIMEOUT_MS) def selectCheckbox(self, objId, onoff='on'): sel = self.seleniumLibrary._selenium chk = 'chk%s' % objId if sel.get_value(chk) != onoff: sel.click(chk) info('Checkbox id=' + chk + ' set to ' + sel.get_value(chk)) def waitFor(self, el): sel = self.seleniumLibrary._selenium for i in range(20) : if sel.is_element_present(el) : info("element appeared after %s" % i) break else : time.sleep(1) else : fail("element DID NOT appear") def closeBrowser(self): self.seleniumLibrary.close_all_browsers() def goToPage(self, page): sel = self.seleniumLibrary._selenium if(page == 'pbis'): url = "/scrumzu/TEST/pbis/" elif(page == 'teams'): url = "/scrumzu/TEST/teams/" elif(page == 'sprints'): url = "/scrumzu/TEST/sprints/" elif(page == 'projects'): url = "/scrumzu/projects/" elif(page == 'releases'): url = "/scrumzu/TEST/releases/" elif(page == 'TEST'): url = "/scrumzu/TEST" else: fail("Unknown page given") sel.open(url) sel.wait_for_page_to_load(DEFAULT_TIMEOUT_MS) def clickPbiActionButton(self, button): if(button == "new pbi"): btn = pbiAddBtn elif(button == "submit form"): btn = submitForm elif(button == "edit pbi"): btn = pbiEditBtn elif(button == "delete pbi"): btn = pbiDel elif(button == "mark as done"): btn = pbiMarkAsDone else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def clickTeamActionButton(self, button): if(button == "new team"): btn = teamAddBtn elif(button == "edit team"): btn = teamEditBtn elif(button == "delete"): btn = teamDel elif(button == "submit form"): btn = submitForm else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def clickSprintActionButton(self, button): if(button == "new sprint"): btn = sprintAddBtn elif(button == "edit sprint"): btn = sprintEditBtn elif(button == "delete sprint"): btn = sprintDel elif(button == "submit form"): btn = submitForm elif(button == "start sprint"): btn = sprintStart elif(button == "end sprint"): btn = sprintStop else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def clickProjectActionButton(self, button): if(button == "new project"): btn = projectAddBtn elif(button == "edit project"): btn = projectEditBtn elif(button == "delete project"): btn = projectDel elif(button == "submit form"): btn = submitForm elif(button == "add atr"): btn = projectAddAtr elif(button == "delete atr"): btn = projectDeleteAtr else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def clickReleaseActionButton(self, button): if(button == "new release"): btn = releaseAddBtn elif(button == "edit release"): btn = releaseEditBtn elif(button == "delete release"): btn = releaseDel elif(button == "submit form"): btn = submitForm else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def pause(self): time.sleep(10) def getCurrentDate(self): now = datetime.datetime.now() return now.strftime("%Y-%m-%d") def login(self, role): sel = self.seleniumLibrary._selenium if( "%s" % role == "owner" ): sel.type( loginTB, owner ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) elif( "%s" % role == "master" ): sel.type( loginTB, master ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) elif( "%s" % role == "master2" ): sel.type( loginTB, 'sm2' ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) elif( "%s" % role == "user" ): sel.type( loginTB, user ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) elif( "%s" % role == "root" ): sel.type( loginTB, root ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) elif( "%s" % role == "sp" ): sel.type( loginTB, 'sp' ) sel.type( passwordTB, pswd ) self.clickOn( logIn ) else: fail("Unknown user") def logout(self): sel = self.seleniumLibrary._selenium sel.click( logOut ) sel.wait_for_page_to_load(DEFAULT_TIMEOUT_MS) def clickFilterActionButton(self, button): if(button == "select"): btn = filterSelectBtn elif(button == "clear"): btn = filterClearBtn elif(button == "run"): btn = filterRunBtn else: fail("Unknown button") self.clickOn(btn) info(btn + "clicked") def clickDialogWindowElement(self,element): sel = self.seleniumLibrary._selenium if(element == 'close filter'): el = filterClose elif(element == 'add filter'): el = filterAdd else: fail("Unknown element to click") sel.click(el) def makeDictionary(self, atr1, val1, atr2, val2): dic= {} dic[atr1] = val1 dic[atr2] = val2 return dic def selectCheckboxes(self, ids, idPrefix="chk"): for i in ids: self.selectCheckbox(i) def makeList(self, it1, it2): return [it1, it2]