selenium的一些操作

Posted lambertcao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium的一些操作相关的知识,希望对你有一定的参考价值。

 

 

1.用selenium中的selenium.webdriver()申明对象

1 ‘’‘申明浏览器对象’‘’
2 
3 from selenium import webdriver
4 browser = webdriver.Chrome()    #创建一个空浏览器
5 browser.get(https://www.baidu.com)     #访问网址
6 browser.close()               #关闭浏览器

2.对文本的相关节点进行查找

1 from selenium import webdriver
2 
3 browser = webdriver.Chrome()
4 browser.get(https://www.taobao.com)
5 input_first = browser.find_element_by_id(q)
6 input_second = browser.find_element_by_css_selector(#q)
7 input_third = browser.find_element_by_xpath(//*[@id = q])
8 print(input_first,input_second,input_third)
9 browser.close()

备注,可以导入 from selenium.webdriver.commom.by import By
然后查找语句可以改变为
input = browser.find_element((By.ID,‘q‘))

如果要查找所有元素,可以设置为find_elements

3.用selenium对浏览器进行相应的操作

 1 from selenium import webdriver
 2 import time  
 3 
 4 browser = webdriver.Chrome()
 5 browser.get(https://www.taobao.com)
 6 input =  browser.find_element_by_id(q)
 7 input.send_keys(iphone)
 8 time.sleep(1)
 9 input.clear()
10 input.send_keys(ipad)
11 button = browser.find_element_by_class_name(btn-search)
12 button.click()

4.拖拽网页中的一些内容布局

from selenium import webdriver
import time
form selenium.webdriver.commom.by import By
from selenium.webdriver import ActionChains


browser = webdriver.Chrome()
browser.get(http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable)

browser.switch_to.frame(iframeResult)
source = browser.find_element_by_css_selector(#draggable)
target = browser.find_element_by_css_selector(#droppable)

action=ActionChains(browser)
actions = action.drag_and_drop(source,target)
actions.perform()

5.对下滑操作,利用javascript来实现

 1 from selenium import webdrive
 2 
 3 
 4 
 5 browser = webdriver.Chrome()
 6 
 7 browser.get(https://www.zhihu.com/explore)
 8 
 9 browser.execute_script(widow_scollTo(0,document.body.scrollHeight))
10 
11 browser.execute_script(alet(To bottom))

6.利用get_attribute()

from selenium import webdriver



browser = webdriver.Chrome()

browser.get(https://www.zhihu.com/explore)
logo = browser.find_element_by_id(zh-top-link-logo)
print(logo)
print(logo.get_attribute(class))

7.获取文本值

1 from selenium import webdriver
2 
3 browser = webdriver.Chrome()
4 url = https://www.zhihu.com/explore
5 browser.get(url)
6 input = browser.find_element_by_class_name(zu-top-add-question)
7 pritn(input.text)

8.获取id、位置、标签名和大小

1 from seleniun import webdriver
2 
3 browser = webdriver.Chrome()
4 browser.get(https://www.zhihu.com/explore)
5 input = browser.find_element_by_class_name(zu-top-add-question)
6 print(input.id)
7 print(input.location)
8 print(input.tag_name)
9 print(input.size)

9.如果页面中有子frame,需要切换到子frame才能使用

 1 import time
 2 from selenium import webdriver
 3 from selenium.commom.exceptions import NoSuchElementException
 4 
 5 browser.get(url)
 6 browser.switch_to.frame(iframeResult)
 7 try:
 8    logo =  browser.find_element_by_class_name(logo)
 9 except NoSuchElementException:
10     print(Not Logo)
11 browser.switch_to.parent_frame()
12 logo = browser.find_element_by_class_name(logo)
13 print(logo)
14 print(logo.text)

10.隐式等待,显示等待

隐式等待

from selenium import webdriver

browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get(https://www.zhihu.com/explore)
input = browser.find_element_by_class_name(zu-top-add-question)
print(input)

显示等待

 1 from selenium import webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.ui import WebDriverWait
 4 from selenium.webdriver.support import expected_condition as EC
 5 
 6 
 7 browser = webdriver.Chrome()
 8 browser.get(https://www.taobao.com)
 9 
10 wait = WebDriverWait(browser,10)
11 input  = wait.until(EC.presence_of_element_located(()))
12 button = wait .until(EC.element_to_be_clickable(By_CSS_SELECTOR,btn-search))
13 print(input,button)

11.使用selenium模拟网络页面倒退与前进

 1 import time
 2 from  selenium import webdriver
 3 
 4 
 5 browser = webdriver.Chrome()
 6 browser.get(https://www.taobao.com)
 7 browser.get(https://www.baidu.com)
 8 browser.back()
 9 time.sleep()
10 browser.forwawrd()
11 browser.close()

12.使用选项卡进行操作设置

1 from selenium import webdriver
2 import time
3 
4 browser = webdriver.Chrome()
5 browser.get(https://www.baidu.com)
6 browser.execute_script(window.open())
7 browser.switch_to.window(browser.window.handles[1])
8 browser.get(https://www.zhihu.com)
9 browser.switch_to.window(browser.window.handle[0])

 

以上是关于selenium的一些操作的主要内容,如果未能解决你的问题,请参考以下文章

python中使用selenium的一些注意

selenium+java的常使用的一些操作

Selenium2中对于alert元素的操作

selenium基本操作

selenium入门

selenium玩转svg操作