多窗口_selenium语法

实现:在新浪微博登录页面点击注册,在注册页面邮箱地址输入框中输入邮箱地址,再次跳转到登录页面。

from selenium import webdriver
import time as t
from selenium.webdriver.common.by import By

driver=webdriver.Chrome()
driver.maximize_window()
driver.get("http://mail.sina.com.cn/")
driver.implicitly_wait(30)

#获取当前窗口句柄
now_handle=driver.current_window_handle
t.sleep(2)

#点击注册链接
driver.find_element(By.LINK_TEXT,'注册').click()
t.sleep(2)
handles=driver.window_handles

for handle in handles:
    if handle!=now_handle:
        driver.switch_to.window(handle)
        t.sleep(2)
        driver.find_element(By.NAME,'email').send_keys('RLT')
        t.sleep(2)
        #关闭注册页面 
        driver.close()
#切换到登陆页面
driver.switch_to.window(now_handle)
t.sleep(3)
#在输入框中输入邮箱
driver.find_element(By.ID,'freename').send_keys('RLT')
t.sleep(4)
driver.quit()
#对页面进行刷新
driver.refresh()

#输出执行的浏览器

print('测试执行的浏览器为:{0}'.format(driver.name))

#清空A的关键字

A.clear()

#获取元素属性值

A.get_attribute('xxx')

#检查该元素对用户是否可见

A.is_played()

#检查该元素对用户是否可编辑

A.is_enabled()

#检查是否已选中(主要针对单选按钮或复选按钮)

A.is_selected()

#提交表单,点击提交按钮,跳转到另一个页面

A.sumbit()

显性等待:

只要在10s内,只要百度首页的搜索输入框可以正确加载出来,都是可以在输入框中输入搜索的关键字,代码如下:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
so=WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,'kw')))
so.send_keys('Selenium')

driver.quit()

判断元素是否可见:

WebDriverWait(driver,10).until(expected_conditivisibility_of_element_located((By.LINK_TEXT,'关于百度')))

鼠标事件:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")

#鼠标悬浮停操作
element=driver.find_element(By.CSS_SELECTOR,'#s-usersetting-top')
t.sleep(3)
ActionChains(driver).move_to_element(element).perform()
t.sleep(3)
driver.find_element(By.CSS_SELECTOR,'#s-user-setting-menu > div > a:nth-child(2) > span').click()
t.sleep(2)

driver.get("http://www.baidu.com")
#鼠标在百度搜索框输入框右键操作
actionChains=ActionChains(driver)
so=driver.find_element(By.ID,'kw')
actionChains.context_click(so).perform()
t.sleep(6)


driver.get("http://www.baidu.com")
#对百度按钮进行双击操作
actionChains=ActionChains(driver)
driver.find_element(By.ID,'kw').send_keys('selenium')
locator=driver.find_element(By.ID,'su')
actionChains.double_click(locator).perform()
t.sleep(6)
driver.quit()

键盘事件实战(选中、复制、粘贴):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
so=driver.find_element(By.ID,'kw')
so.send_keys('selenium')

#选中输入框的搜索关键字
so.send_keys(Keys.CONTROL,'a')
#复制搜索的关键字
so.send_keys(Keys.CONTROL,'c')
#按下Backspace删除输入的搜索关键字
so.send_keys(Keys.BACKSPACE)

#打开bing的搜索首页
driver.get('http://www.bing.com')
bingso=driver.find_element(By.ID,'sb_form_q')

#复制搜索关键字到bing的输入搜索框中
bingso.send_keys(Keys.CONTROL,'v')
t.sleep(6)
driver.quit()

Selenium提供的对javascript的处理,调用的方法是execute_script

浏览器滑动操作:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")

driver.find_element(By.ID,'kw').send_keys('s')
driver.find_element(By.ID,'su').click()

#浏览器滑动到底部js代码
down='var q=document.documentElement.scrollTop=10000'
t.sleep(3)
#操作js实现鼠标滑动到浏览器底部
driver.execute_script(down)
t.sleep(3)

#点击下一页
driver.find_element(By.XPATH,'//*[@id="page"]/div/a[10]').click()
t.sleep(3)

#操作js实现鼠标滑动到浏览器顶部
up='var q=document.documentElement.scrollTop=0'
driver.execute_script(down)
t.sleep(3)
driver.execute_script(up)
t.sleep(3)

driver.quit()

富文本的处理、时间控件的处理

获取当前截图:

driver.save_screenshot('xxx.png')

保存当前屏幕截图

driver.get_screenshot_as_file('路径')

获取图片二进制数据

driver.get_screenshot_as_png()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值