driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
####webdriver 高级应用
##1.借助js操作页面元素
myjs1 = "document.getElementById('kw').value='storm'"
myjs2 = "document.getElementById('su').click()"
driver.execute_script(myjs1)
driver.execute_script(myjs2)
##2.若输入的文本设置readonly为true,可以将其readonly设置为false,然后输入文本内容
js1 = "$('input[id=issue_start_date]').attr('readonly',true)"
driver.execute_script(js1)
js2 = "$('input[id=issue_start_date]').attr('readonly',false)"
driver.execute_script(js2)
driver.find_element_by_id('issue_start_date').send_keys('002016-07-08')
##3.若输入的文本设置readonly为true,可以将其readonly属性移除
js2 = "$('input[id=issue_start_date]').removeAttr('readonly')" # 3.jQuery,移除属性
driver.execute_script(js2)
##4.1用js来模拟按钮点击动作
js1 = "arguments[0].click()"
ele = driver.find_element_by_id('bt1')
driver.execute_script(js1,ele)
2.通过js的方式修改span中间的值
js1 = "document.getElementById('span_id').innerText='aaa'"
driver.execute_script(js1)
##5.操作滚动条
获取当前窗口的宽:document.body.scrollWidth
获取当前窗口的高:document.body.scrollHeight
1、滑动到最下方:js1=“window.scrollTo(0,document.body.scrollHeight)”
2、滑动到最上方:js2="window.scrollTo(0,0)"
3.操作横向滚动条:js3="window.scrollTo(document.body.scrollWidth,0)"
4.操作内嵌滚动条:先切到iframe中,然后滚动即可:js4="window.scrollTo(0,200)"
driver.execute_script(js1)
5、将滚动条滑动到指定元素上
js = "arguments[0].scrollIntoView()"
ele = driver.find_element_by_xpath('//*[@id="3"]/h3/a')
driver.execute_script(js, ele)
##6.通过模拟键盘上的向下箭头来选择ajax中的元素
ele.send_keys(Keys.ARROW_DOWN)
##7.1获取所有当前浏览器地址所有cookies
cur_ck = driver.get_cookies()
7.2.取对应名字的cookie,
mycookie = driver.get_cookie("BAIDUID")
7.3.删除所有cookies
driver.delete_all_cookies()
7.4.添加一条cookie;
driver.add_cookie({"name":"storm", "value":"123456"})
7.5.文件用来保存cookie
mycookies = driver.get_cookies()
jsoncookies = json.dumps(mycookies)
with open("mycookie.json", 'w') as f:
f.write(jsoncookies)
7.6.文件用来保存cookie
f = open("mycookie.json")
cur_ck = f.read()
cur_ck = json.loads(cur_ck)
for i in cur_ck:
driver.add_cookie(i)
##8.禁止图片加载
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_setting_values' : {'images' : 2}}
options.add_experimental_option('prefs',prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.baidu.com/')
##9.设置浏览器以最大化的方式启动
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)
##10.封装高亮显示页面元素的方法;使用js代码,将页面元素对象的背景颜色设置为绿色,边框设置为红色;
def hightLightEle(driver, element):
driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element,"background: green; border: 2px solid red;")
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
ele = driver.find_element_by_id('kw')
hightLightEle(driver, ele)
##11.测试过程中截图:get_screenshot_as_file
driver.get_screenshot_as_file("d:\\baidu.png")
##12.
(1)get_property 就是取元素属性的,该元素有id,有name,就可以通过该方法取;
(2)get_attribute("value"),就是取文本框中输入的内容。
(3).text 属性,就是元素本身的文字显示。
ele1 = driver.find_element_by_id('kw')
ele1.send_keys('storm')
print(ele1.get_property('name'))
print(ele1.get_attribute('value'))