Selenium中WebDriver API的使用(三)

WebDriver API中常用的方法和属性

方法:

clear()  --->清除一个文本输入框

p:driver.find_element_by_id("kw").clear()

send_keys()  -->来输入字符串

p:driver.find_element_by_id("kw").send_keys("Selenium")

click()    -->点击页面上支持点击的元素

driver.find_element_by_id("su").clear()

refresh()-->刷新页面的方法

p: driver.refresh()

back()-->从百度新闻后退到百度首页

p:driver.back()

forward()-->百度首页前进到百度新闻

p:driver.forward()

from selenium.webdriver.common.keys import Keys

driver.find_element_by_tag_name(‘body‘).send_keys(Keys.CONTROL + ‘t‘)     ---> 快捷键是 ctrl + t ,新开一个浏览器tab

driver.find_element_by_tag_name(‘body‘) .send_keys(Keys.CONTROL + ‘a‘)      -->快捷键是 Ctrl+a,全选当前页面文字

element = driver.find_element_by_id(‘kw‘)

element.send_keys("Selenium automation")

element.send_keys(Keys.BACKSPACE)   -----》退格键删除Selenium automation这些文字

from selenium.webdriver import ActionChains  

from selenium.webdriver.common.keys import Keys 

element = driver.find_element_by_xpath("//*[@id=‘lg‘]/img")  

actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
注意:在火狐浏览器中,上面的这个方法是失效的,这是火狐的一个bug

  

driver.execute_script("window.alert(‘这是一个alert弹框。‘);") # 注意这里的分号是英文输入法的分号,不能用中文

driver.get_screenshot_as_file("C:\\Users\\你的账户名\\Desktop\\baidu.png")  ---》截图并保存

print driver.current_window_handle # 输出当前窗口句柄
handles = driver.window_handles # 获取当前全部窗口句柄集合
print handles # 输出句柄集合  

for handle in handles:# 切换窗口
    if handle != driver.current_window_handle:
        print ‘switch to second window‘,handle
        driver.close() # 关闭第一个窗口
        driver.switch_to.window(handle) #切换到第二个窗口

driver.switch_to.frame("iframe1") ---》iframe切换

find_element_by_link_text("地区") .execute_script("return arguments[0].scrollIntoView();",target_elem)   ----->执行js脚本控制浏览器竖向滚动条 ,拖动到元素为“地区"的地方

maximize_window() --->设置浏览器全屏

p:driver.maximize_window()

driver.get_window_size()--->获取浏览器窗口的大小

driver.set_window_size(1280,800)   -->设置窗口的分辨率是1280*800

.is_selected()-->判断单选或者多选控件是否被选中,返回值是布尔值

p:driver.find_element_by_xpath("//*[@id=‘news‘]").is_selected()

属性:

capabilities[‘version‘] -->浏览器version的值

p:driver.capabilities[‘version‘]

current_url--->获取当前页面的URL

p:driver.current_url

title-->获取当前页面的标题显示的字段

p:driver.title

driver.find_element_by_xpath("//*[@id=‘TANGRAM__PSP_8__error‘]").text     ---》获取某一个元素的text属性值

driver.find_element_by_id(‘su‘).size  --->获取id为su的元素的大小

#  this is config file, only store browser type and server URL  

[browserType]
#browserName = Firefox
browserName = Chrome
#browserName = IE  

[testServer]
URL = https://www.baidu.com
#URL = http://www.google.com  

config.ini

def get_value(self):
        root_dir = os.path.dirname(os.path.abspath(‘.‘)) # 获取项目根目录的相对路径
        print root_dir  

        config = ConfigParser.ConfigParser()
        file_path = os.path.dirname(os.path.abspath(‘.‘)) + ‘/config/config.ini‘
        config.read(file_path)  

        browser = config.get("browserType", "browserName")
        url = config.get("testServer", "URL")  

        return(browser,url)  # 返回的是一个元组 

读取配置文件内容

 def get_system_time(self):
        print (time.time()) # time.time()获取的是从1970年到现在的间隔,单位是秒
        print (time.localtime())
        new_time = time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime()) # 格式化时间,按照 2017-04-15 13:46:32的格式打印出来
        print (new_time)    

系统时间和格式化时间显示

def get_search_result(self):
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.implicitly_wait(8)  

        driver.get(‘https://www.baidu.com‘)
        driver.find_element_by_id(‘kw‘).send_keys(‘selenium‘)
        time.sleep(1)
        search_result_string = driver.find_element_by_xpath("//*/div[@class=‘nums‘]").text
        print (search_result_string)  

        new_string = search_result_string.split(‘约‘)[1] # 第一次切割得到 xxxx个,[1]代表切割右边部分
        print (new_string)
        last_result = new_string.split(‘个‘)[0]  # 第二次切割,得到我们想要的数字 [0]代表切割参照参数的左边部分
        print (last_result)    

Python中字符串切割操作

原文地址:https://www.cnblogs.com/angelgril/p/7086718.html

时间: 2024-08-14 20:02:58

Selenium中WebDriver API的使用(三)的相关文章

selenium之WebDriver API

自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告,元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.而WebDriver 属于Selenium体系设计出来操作浏览器的一套API,它支持多种语言,Selenium WebDriver只是python的一个第三方框架,也就是说是一个实现web自动化的第

关于在selenium 中 webdriver 截图操作

package prictce; import java.io.File; import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.We

自动化测试 selenium中WebDriver 和WebElement的区别

之前在做UI自动化测试中 经常会用到  WebDriver  和 WebElement两个类   以前对这两个类总感觉有点傻傻分不清 昨天看了下之前下的代码  结合自己的理解  对着两个类的区别和关系整理一下(欢迎拍砖指正)   希望对这两个类同样有疑惑的同学有帮助 先说Webdriver Webdriver  我理解它是一个浏览器驱动类   封装了浏览器的操作方法 比如: 浏览器的打开关闭,窗口切换,查找元素,获取当前url,获取标题,前进后退等等 WebElement  我理解它是一个元素类

selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python

我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait().隐式等待implicitly_wait().强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别 在前面的博文中简单介绍了<强制等待和隐士等待的区别和理解>,本文再详细的结合案例进行理解. sleep(): 强

(三)WebDriver API(上)

参考内容:官方API文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于python语言> 一.WebDriver原理 1.关于WebDriver 设计模式:按照Server-Client的经典设计模式设计: Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做

&lt;译&gt;Selenium Python Bindings 6 - WebDriver API

本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你可以这样访问所有的类: webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdr

webdriver API中文文档

1.1   下载selenium2.0的lib包 http://code.google.com/p/selenium/downloads/list 官方UserGuide:http://seleniumhq.org/docs/ 1.2   用webdriver打开一个浏览器 我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器.但是做页面的测试,速度通常很慢,严重影 响持续集成的速度,这个时候建议使用HtmlUnit,不过HtmlUnitDirver

Selenium Webdriver API(4)

27.操作复选框 checkBox#encoding=utf-8import unittestimport timefrom selenium import webdriver class VisitLocalWebByIE(unittest.TestCase):    def setUp(self):        #启动浏览器        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")    d

Selenium中三种等待的使用方式

在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错.这时我们就要用到wait(等待),而在Selenium中,我们可以用到一共三种等待,每一种等待都有自己的优点或缺点,如何选择最优的等待方式呢.来看下这三种等待方式吧.选择合理的等待方式,可以规避网络延迟,代码不稳定问题 time(固定等待) 在开发自动化框架过程中,最忌讳使用Python自带模块的time的sleep方法进行等待,虽然可以自定义等待时间,但当网络条件良好时,依旧按照