Python自动化页面操作

一、输入内容:send_keys()

#定位输入框
input_box = browser.find_element_by_id('kw')
#输入内容
input_box.send_keys('关键字')

二、点击按钮:click()

#定位搜索按钮
button = browser.find_element_by_id('su')
button.click()

三、清空输入框:clear()

定位输入框
input_box = browser.find_element_by_id('kw')
#清空输入框
input_box.clear()

四、模拟’回车’操作:submit()

#通常应用于提交表单
#例如:搜索框输入内容后的回车操作
submit()
from selenium import webdriver

browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://www.baidu.com')

定位输入框 input_box = browser.find_element_by_id(‘kw’)

输入关键词 input_box.send_keys(‘关键字’)

模拟回车操作 input_box.submit()

五、单选框选中

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://news.baidu.com/')
time.sleep(1)

try:
    #定位搜索框下面的新闻全文和新闻标题单选项
    radio_button = driver.find_elements_by_css_selector(".search-radios>input")
    # 定位的一组元素后,返回的是一个列表,这里就循环选中对应的选项
    for i in radio_button:
        i.click()
    print ('选中单选框.')
except Exception as e:
    print ('fail',format(e))

六、复选框选中

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://passport.baidu.com/v2/?reg&tt=1529850358050&overseas=undefined&gid=02B2650-6D11-430E-A19D-529F69B9F1CE&tpl=xw&u=http%3A%2F%2Fnews.baidu.com%2F')
time.sleep(1)

try:
    #定位 阅读并接受《百度用户协议》及《百度隐私权保护声明》 的多选框
    checkbox = driver.find_elements_by_css_selector("#TANGRAM__PSP_3__isAgree")
    # 定位的一组元素后,返回的是一个列表,这里就循环选中对应的选项
    for i in checkbox:
        i.click()
    print ('选中多选框')
except Exception as e:
    print ('fail',format(e))

七、操作下拉框:Select模块(index)

selenium提供了Select模块,可以直接根据属性或索引定位。
【1】导入select方法:

from selenium.webdriver.support.select import Select
【2】Select模块中的定位方法。


'''1、三种选择某一选项项的方法'''

select_by_index()           # 通过索引定位;注意:index索引是从“0”开始。
select_by_value()           # 通过value值定位,value标签的属性值。
select_by_visible_text()    # 通过文本值定位,即显示在下拉框的值。

'''2、三种返回options信息的方法'''

options                     # 返回select元素所有的options
all_selected_options        # 返回select元素中所有已选中的选项
first_selected_options      # 返回select元素中选中的第一个选项                  


'''3、四种取消选中项的方法'''

deselect_all                # 取消全部的已选择项
deselect_by_index           # 取消已选中的索引项
deselect_by_value           # 取消已选中的value值
deselect_by_visible_text    # 取消已选中的文本值

实例

'''这个是我百度首页搜索设置里面的一个下拉框html代码'''
html = '''
<select name="NR" id="nr">
    <option value="10" selected="">每页显示10条</option>
    <option value="20">每页显示20条</option>
    <option value="50">每页显示50条</option>
</select>
'''
# coding=utf-8
from selenium import webdriver
from selenium.webdriver.support.select import Select

# 初始化
driver = webdriver.Chrome()
......

'''如果我们需要选择:50条,那么可以用下面的三种方法
    先选中输入框元素,然后在选择对应选项'''
# 根据索引选择
Select(driver.find_element_by_name("NR")).select_by_index("2")
# 根据value值选择
Select(driver.find_element_by_name("NR")).select_by_value("50")
# 根据文本值选择
Select(driver.find_element_by_name("NR")).select_by_visible_text("每页显示50条")

driver.quit()

八、多个浏览器窗口切换

#切换浏览器窗口的时候将会用到的三个方法:

current_window_handle:获取当前窗口的句柄。
window_handles:返回当前浏览器的所有窗口的句柄。
switch_to_window():用于切换到对应的窗口。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

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

# 获取当前窗口句柄
seacher_windows = driver.current_window_handle

# 跳转新页面
driver.find_element_by_xpath('//*[@id="block1_server"]/div[2]/ul/li[1]/div/div[1]/a[3]').click()

all_handles = driver.window_handles
#回到首页
for handle in all_handles:
    if handle != seacher_windows:
        driver.switch_to.window(seacher_windows)

猜你喜欢

转载自blog.csdn.net/weixin_44102466/article/details/96285832