< a href="https://github.com/%E5%B0%8F%E7%9A%AE%E6%B5%A9"> Fork me on GitHub

selenium定位和键盘事件

selenium

selenium

基础操作

from selenium import webdriver  # 浏览器驱动

获取浏览器驱动对象

driver = webdriver.Chrome()

driver = webdriver.Firefox()

driver = webdriver.Chrome(executable_path=r'驱动执行文件的绝对路径')

driver.get('url')
driver.find_element_by_id('xx') # 根据id定位标签
driver.find_element_by_xpath('xxx') # 根据xpath定位
driver.close() # 关闭当前的浏览器窗口
driver.quit() # 退出浏览器
driver.execute_script('alert("xxo00")') # 执行js代码

最大/最小/指定大小

driver.maximize_window()
driver.minimize_window()
driver.set_window_size(600,400)

截屏

driver.save_screenshot('a.png') # 直接截屏,并保存到 a.png中, 注意,图片的类型是png的
png = driver.get_screenshot_as_png() # 获取解聘的字节流,需要自己保存到png文件中
f = open('b.png', 'wb')
f.write(png)

向input框输入文本

driver.find_element_by_xpath('xxxx').send_keys('xx')
driver.find_element_by_xpath('xxxx').clear() # 清空文本框的值
driver.find_element_by_xpath('xxxx').click() # 点击标签

刷新

driver.refresh()

前进/后退

driver.forward()
driver.back()

获取页面的title

title = driver.title

获取当前页面的文本内容

current_page = driver.page_source

获取当前页面的url

url = driver.current_url

获取当前/所有窗口对象

res = driver.current_window_handle
results = driver.window_handles

自动向163邮箱发送邮件

from selenium import webdriver
import time

from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()

用浏览器发送请求

driver.get("https://mail.163.com/")
time.sleep(4)

try:
# 点击密码登录标签
driver.find_element_by_id("switchAccountLogin").click()
time.sleep(1)
iframe = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)

# time.sleep(1)
driver.find_element_by_class_name(&#39;dlemail&#39;).send_keys(&quot;guo15009428458&quot;)
driver.find_element_by_class_name(&#39;dlpwd&#39;).send_keys(&quot;guo19960529&quot;)
driver.find_element_by_class_name(&#39;tabfocus&#39;).click()
time.sleep(1)
# driver.find_element_by_id(&#39;_mail_tabitem_0_3&#39;).click()
time.sleep(3)
driver.find_element_by_id(&#39;_mail_component_24_24&#39;).click()

#收件人
#方法一
time.sleep(3)
obj = driver.find_element_by_class_name(&#39;nui-editableAddr-ipt&#39;).send_keys(&quot;guo15009428458@163.com&quot;)

time.sleep(1)

title = driver.find_elements_by_class_name(&#39;nui-ipt-input&#39;)[2]
title.send_keys(&quot;郭建凯的selenium第一份邮件&quot;)
# driver.find_elements_by_class_name(&#39;nui-ipt-input&#39;).send_keys(&quot;郭建凯的selenium第一份邮件&quot;)

#方法二,利用类值,找到标签
time.sleep(1)
iframe = driver.find_element_by_class_name(&#39;APP-editor-iframe&#39;)
driver.switch_to.frame(iframe)
driver.find_element_by_class_name(&#39;nui-scroll&#39;).send_keys(&quot;nihaoa&quot;)
driver.switch_to.default_content()

#方法二,利用键盘操作
# title.send_keys(Keys.TAB, &quot;nihaoa&quot;)
time.sleep(1)
driver.find_element_by_class_name(&#39;nui-mainBtn-hasIcon&#39;).click()

finally:
time.sleep(2)
driver.quit()

id定位

from selenium import webdriver

driver = webdriver.get(url接口)

driver.find_element_by_id('su') #里面填写标签id值
driver.find_elements_by_id('') #找到多个标签,是一个列表,依靠索引取值

可以浏览器中索引到所需要的标签值,在谷歌浏览器是Ctrl+F,进行索引

class类值定位

from selenium import webdriver

driver = webdriver.get(url接口)
driver.find_element_by_class_name(class类值) #里面填写标签类值
driver.find_elements_by_class_name(class类值) #找到多个标签,是列表

css样式定位

from selenium import webdriver

driver = webdriver.get(url接口)
driver.find_element_by_css_selector('') #在浏览器中css找到标签,右键点击copy 选择selects
driver.find_elements_by_css_elector('') #索引到是列表

标签定位

from selenium import webdriver

driver = webdriver.get(url接口)
driver.find_element_by_tag_selector('a') #在浏览器中找到a标签
driver.find_elements_by_tag_selector('')

Xpath定位

#在浏览器中找到标签,右键点击copy xpath
from selenium import webdriver

driver.find_element_by_xpath('') #xpath内容
driver.find_elements_by_xpath('')

a标签的link属性

# driver.find_element_by_link_text('xxx')      #只适用于超链接
# driver.find_elements_by_link_text('xxx')     #精确定位
# driver.find_element_by_partial_link_text('xx')    #模糊定位
# driver.find_elements_by_partial_link_text('xxx')

根据name定位

# driver.find_element_by_name('xx')
# driver.find_elements_by_name('xx')

键盘事件

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://pythonav.com/login/')

用户名输入值

user = driver.find_element_by_id('id_username')
user.send_keys('alexdsb')
time.sleep(1)

user.send_keys(Keys.CONTROL, 'a')

time.sleep(1)

user.send_keys(Keys.DELETE)

user.send_keys(Keys.BACKSPACE)

time.sleep(2)

user.send_keys(Keys.CONTROL, 'a')

time.sleep(1)

user.send_keys(Keys.CONTROL, 'c')

time.sleep(3)

pwd = driver.find_element_by_id('id_password')
pwd.send_keys(Keys.CONTROL, 'v')

time.sleep(3)
pwd.send_keys(Keys.TAB, 'ABC') # TAB之后,输入值
pwd.send_keys(Keys.TAB, Keys.ENTER) # tab之后,直接回车

 

posted @ 2020-01-09 21:17  赌徒!  阅读(210)  评论(0编辑  收藏  举报