Python自動化測試系列[v1.0.0][JS完成任務]

有些時候Selenium並不能幫我們完成頁面上的所有操作,例如滾動條的控制就比較難處理,而且有些時候click()方法也會失靈即便我們定位按鈕沒問題也有點擊不了的情況,這些情況下我們就可以藉助Python可以執行JS的機制,藉助JS來輔助我們完成一些任務。

方法封裝

class JS_Assistance:  # 定義類
def __init__(self, driver):
    self.driver = driver
def single_click(self, element):
    try:
        #  判斷頁面元素狀態
            if element.is_enabled() and element.is_displayed():
                #  調用js單擊元素
                self.driver.execute_script("arguments[0].click();", element)
            else:
                print("該元素不可點擊")
        except Exception as e:
            raise e
    def scroll_to_bottom(self):
        """
        滾動條滾動到頁面底部
        :return:
        """
        self.driver.execute_script("document.documentElement.scrollTop=10000")
    def scroll_to_top(self):
        """
        滾動條滾動到頁面頂部
        :return:
        """
        self.driver.execute_script("document.documentElement.scrollTop=0")
    def scrolltobottom(self):
        """
        滾動條滾動到頁面底部
        :return:
        """
        self.driver.execute_script("window.scrollTo(0,100000)")
def scrolltotop(self):
        """
        滾動條滾動到頁面頂部
        :return:
        """
        self.driver.execute_script("window.scrollTo(0,1)")
def vertical_to_middle(self):
        """
        縱向滾動條滾動到頁面中部
        :return:
        """
        self.driver.execute_script("window.scrollBy(0, 0-document.body.scrollHeight *1/2)")
def horizontal_to_middle(self):
        """
        滾動水平滾動條到頁面中部
        :return:
        """
        self.driver.execute_script("window.scrollBy(0, 0-document.body.scrollWidht *1/2)")
    def scroll_to_element(self, element):
        """
        滾動到具體頁面元素可見位置
        :param element:
        :return:
        """
        self.driver.execute_script("arguments[0].scrollIntoView(true);", element)
    def scroll_to_bottom_page(self):
        """
        滾動條滾動到頁面底部
        :return:
        """
        self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")

方法調用

def test_js(self):  # 定義測試方法
chrome_driver = webdriver.Chrome()
chrome_driver.get("http://www.baidu.com")
chrome_driver.find_element_by_id("kw").send_keys("davieyang")
chrome_driver.find_element_by_id("su").click()
    JS_Assistance(chrome_driver).scroll_to_bottom()  #滾動頁面到底部 
    time.sleep(3)
    JS_Assistance(chrome_driver).scroll_to_top() #滾動頁面到頂部
    time.sleep(3)
    JS_Assistance(chrome_driver).scroll_to_bottom_page()  #滾動頁面到底部
    time.sleep(3)
    JS_Assistance(chrome_driver).scrolltotop()  #滾動頁面到頂部
    time.sleep(3)
    JS_Assistance(chrome_driver).scrolltobottom()  #滾動頁面到底部
    time.sleep(3)
    element = chrome_driver.find_element_by_xpath("//*[@id='help']/a[3]")
    JS_Assistance(chrome_driver).single_click(element)  # 單擊該頁面元素
    time.sleep(3)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章