显示等待WebDriverWait+EC

参考:https://www.cnblogs.com/yoyoketang/p/6538505.html

百度搜索关键字,等待搜索结果页面显示完成后,验证搜索结果的第一条记录

通过WebDriverWait定位一组元素

如果是定位一组元素,用到presence_of_all_elements_located,定位一个元素presence_of_element_located

presence_of_all_elements_located和presence_of_element_located区别:

presence_of_element_located : 判断某个元素是否被加到了dom树里,并不代表

presence_of_all_elements_located : 判断是否至少有1个元素存在于dom树中。举个例子,如果页面上有n个元素的class都是'column-md-3',那么只要有1个元素存在,这个方法就返回True

 

代码如下:

#coding:utf-8
'''
这里写了一个百度搜索页的pageobject
'''
from PageElement.readYaml import parseyaml
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class Baidu_page():
    '''
    百度搜索page类
    '''

    getElement = parseyaml()



    search_box = getElement["baiduPage"]["search_box"]["value"]
    baidu_button = getElement["baiduPage"]["baidu_button"]["value"]
    search_result = getElement["baiduPage"]["search_result"]["value"]





    def __init__(self,driver):
        self.driver = driver

    def input_search(self,keyword,type_a="css"):
        '''输入搜索关键词'''
        self.driver.find_element(type_a,self.search_box).send_keys(keyword)



    def click_baidubutton(self,type_a="css"):
        '''点击百度一下按钮'''
        self.driver.find_element(type_a, self.baidu_button).click()


    def verification_result(self,type_a="css"):
        '''用例结果验证'''
        results = WebDriverWait(self.driver,10).until(EC.presence_of_all_elements_located((type_a,self.search_result)))
        print(results)

        nanjing_baike = results[0].text
        return nanjing_baike

 

posted @ 2019-07-23 14:29  悠然现南山  阅读(500)  评论(0编辑  收藏  举报