Selenium与页面的交互

1、获取测试网址

from  selenium import webdriver
import time

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
time.sleep(10)
print('当前网址是:{0}'.format(driver.current_url))

2、获取当前页面代码

from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
print('获取当前页面代码:{0}'.format(driver.page_source))

3、获取当前的Title

from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
print('百度首页的Title为:{0}'.format(driver.title))

4、页面的前进和后退

 前进用到的方法是 forword,后退用到的方法是back

import time
from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(10)
driver.get('http://www.bing.com')
time.sleep(10)
driver.back()
print('获取当前网址为:{0}'.format(driver.current_url))
time.sleep(10)
driver.forward()
print('获取当前网址为:{0}'.format(driver.current_url))

5、关闭程序

Selenium中,quit方法用来退出驱动程序并关闭执行的浏览器,而close方法用来关闭执行的浏览器,所以关闭程序建议使用quit方法

6、多窗口实战

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://mail.sina.com.cn')
driver.implicitly_wait(30)
now_handle=driver.current_window_handle
time.sleep(10)
driver.find_element(By.LINK_TEXT,'注册').click()
time.sleep(10)
handles=driver.window_handles
for handle in handles:
    if handle!=now_handle:
        driver.switch_to.window(handle)
        time.sleep(10)
        driver.find_element(By.NAME,'email').send_keys('wuya')
        time.sleep(10)
        driver.close()
driver.switch_to.window(now_handle)
time.sleep(10)
driver.find_element(By.ID,'freename').send_keys('wuya')
time.sleep(10)
driver.quit()

7、刷新(refresh)

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.find_element(By.ID,'kw').send_keys('测试')
time.sleep(5)
driver.refresh()
time.sleep(5)
driver.quit()

8、获取执行的浏览器(name)

import time
from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
print('获取执行的浏览器:{0}'.format(driver.name))
driver.quit()

9、清空(clear)

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
so.send_keys('测试')
time.sleep(3)
so.clear()
driver.quit()

10、获取多元素属性值(get_property)

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
so.send_keys('测试')
time.sleep(9)
print('获取百度输入框中填写的关键字为:{0}'.format(so.get_property("value")))

11、检查元素是否可见(is_displayed)

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(10)
about=driver.find_element(By.LINK_TEXT,'关于百度')
time.sleep(10)
print('判断关于百度是否可见:{0}'.format(about.is_displayed()))

12、检查元素是否可编辑(is_enabled)

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
so=driver.find_element(By.ID,'kw')
time.sleep(8)
print('判断百度输入框是否可编辑:{0}'.format(so.is_enabled()))
driver.quit()

 13、下拉框定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<center>
    喜欢的编程语言:
    <select id="nr">
        <option  value="" selected>请选择您喜欢的编程语言</option>
        <option value="Python">Python语言</option>
        <option value="Go">Go语言</option>
        <option value="Java">Java语言</option>
    </select>
</center>
</body>
</html>

from selenium.webdriver.common.by import By
import time
from  selenium import webdriver
from selenium.webdriver.support.select import Select

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/index.html')
nr=driver.find_element(By.ID,'nr')
obj=Select(webelement=nr)
# 用value定位
# obj.select_by_value('Python')
# 用索引定位
# obj.select_by_index(2)
# 文本定位
obj.select_by_visible_text('Java语言')
time.sleep(10)
driver.quit()

 14、弹窗框实战

警告框

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script>
            alert("这是弹出框提示文本弹窗")
        </script>
        <title></title>
    </head>
    <body>
        <p>alert是阻塞的函数</p>
        <p>这句话只有在确认弹出框的提示文本后才会显示</p>
    </body>
</html>


import time
from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/wenbenneirong.html')
print("获取弹窗中的文本信息:{0}".format(driver.switch_to.alert.text))
time.sleep(20)
driver.switch_to.alert.accept()
time.sleep(10)
driver.quit()

 确认框

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script>
            var x; 
            var r=confirm("请按下按钮!");
            if (r==true){
                x="你按下的是\"确定\"按钮。";
            }
            else{
                x="你按下的是\"取消\"按钮。";
            }
            document.write(x)
        </script>
        <title></title>
    </head>
    <body>
    </body>
</html>

import time
from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(2).html')
time.sleep(10)
driver.switch_to.alert.accept()
time.sleep(10)
driver.refresh()
time.sleep(5)
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()

输入框

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script>
            var x; 
            var name=prompt("请输入您的姓名:","")
            if (name!=null && name!=""){ 
             x="你好! " + name + "";
             document.write(x)
            } 
        </script>
        <title></title>
    </head>
    <body>
    </body>
</html>


import time
from  selenium import webdriver

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/86151/Desktop/cailiao/%E6%96%B0%E5%BB%BA%20%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3%20(3).html')
time.sleep(20)
driver.switch_to.alert.send_keys('zhangsan')
time.sleep(20)
driver.switch_to.alert.accept()
time.sleep(10)
driver.quit()

 15、鼠标悬浮操作

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(5)
actionChains=ActionChains(driver)
nr=driver.find_element(By.ID,'s-usersetting-top')
time.sleep(3)
actionChains.move_to_element(nr).perform()
driver.find_element(By.LINK_TEXT,'搜索设置').click()
time.sleep(10)
driver.quit()

16、鼠标右键操作

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


driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
actionChains=ActionChains(driver)
nr=driver.find_element(By.ID,'kw')
time.sleep(3)
actionChains.context_click(nr).perform()
time.sleep(3)
driver.quit()

17、鼠标双击操作

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
time.sleep(3)
actionChains=ActionChains(driver)
so=driver.find_element(By.ID,'su')
time.sleep(5)
actionChains.double_click(so).perform()
time.sleep(3)
driver.quit()

18、键盘事件

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element(By.ID,'kw')
time.sleep(5)
so.send_keys('中国')
so.send_keys(Keys.CONTROL,'a')
so.send_keys(Keys.CONTROL,'C')
so.send_keys(Keys.BACKSPACE)
driver.get('http://www.bing.com')
nr=driver.find_element(By.ID,'sb_form_q')
nr.send_keys(Keys.CONTROL,'v')
time.sleep(5)
driver.quit()

19、浏览器滑动操作

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

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.find_element(By.ID,'kw').send_keys('中国')
driver.find_element(By.ID,'su').click()
down="var q=document.documentElement.scrollTop=10000"
time.sleep(10)
driver.execute_script(down)
up="var q=document.documentElement.scrollTop=0"
time.sleep(10)
driver.execute_script(up)
driver.quit()

 

posted @ 2025-03-06 20:47  净植  阅读(42)  评论(0)    收藏  举报