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)

发布了231 篇原创文章 · 获赞 188 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/105648770