This is Qing’an, V: Qing_ an_ An, this chapter directly teaches you to write a simple and practical automated testing framework. There is not much content. You can see it at a glance.
You can improve it on this basis and make it a real framework. Used in the project.
No more nonsense. We want to create a new project file. My name is frame_ web_ Interface, why? There will be an interface later, but it is not on this channel, but on the channel of the interface.
I created a web under the project file_ Frame file, used to store the driver and some click, input and other methods. Look at the code:
#-- > > > Qing'an<<<--- from time import sleep from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait """ Pass in a driver parameter to open the browser driver = getattr(webdriver,option_) () equals the following expression: driver = webdriver.Firefox() """ def webbrowser(option_): try: driver = getattr(webdriver,option_)() except Exception as e: Print (E, 'input browser format error, use default browser') driver = webdriver.Firefox() return driver class Webbrowser: """ Use the driver driver and pass in the browser parameters required for opening Firefox，Chrome。。。 """ def __init__(self, option_): self.driver = webbrowser(option_) """ open driver. Get ('url ') """ def open(self, url): self.driver.get(url) """ close driver.quit() """ def quit(self): self.driver.quit() """ Element positioning driver.find_element(By.ID,'su') """ def loc_ele(self, ele, value): return self.driver.find_element(ele, value) """ input driver.find_element(By.ID,'su').send_keys(text) """ def input(self, ele, value, text): self.loc_ele(ele, value).send_keys(text) """ click driver.find_element(By.ID,'su').click() """ def click(self, ele, value): self.loc_ele(ele, value).click() """ Forced waiting, depending on the guide package time.sleep(num) or sleep(num) """ def wait(self, num): sleep(num) """ Display wait Determine whether an element exists presence_of_element_located(find_element_by_id) """ def wait_presence(self, num, ele, value): WebDriverWait(self.driver, num, 0.5).until(EC.presence_of_element_located((ele, value)))
I have written very clear notes here, so I won’t explain much. There are some things stored here. If necessary, you can add the required methods by yourself.
If you have any questions, please leave a comment below, or go directly to the blogger.
Next, let’s look at the use case part. How to write it?
I created a casetest file and threw the driver in it. If you don’t throw it in, just define the driver path yourself
#-- > > > Qing'an<<<--- from web_frame.browser import Webbrowser #Instantiate the class. Pass in the name of the driver to be used. Pay attention to case wb = Webbrowser('Chrome') #Open address wb.open('https://baidu.com') #Enter the display waiting for judgment element wb.wait_presence(3, 'id', 'kw') #Forced wait for 1 second wb.wait(1) #Locate the element and enter the content wb. Input ('id ',' kW ',' nothing else in peace ') #Locate the element and click the Baidu search button wb.click('id', 'su') #Shut down wb.quit()
Here I take Baidu as the benchmark. You can directly use it for project practice. Combined with data-driven DDT, you can start automation.
Here you can write your own framework and output the report. Specifically, I have seen unittest before. You can directly introduce it here. You can also use pytest
You can add the log module yourself, and the log module will be published in the python module later.
Conclusion of this chapter. Look forward to the subsequent excel keyword drive, which can greatly reduce the workload.