前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018年python3与selenium教程第2节动作链实现拖曳效果执行Javascript获取节点信息

2018年python3与selenium教程第2节动作链实现拖曳效果执行Javascript获取节点信息

作者头像
章鱼喵
发布2018-09-26 18:02:04
9830
发布2018-09-26 18:02:04
举报
文章被收录于专栏:coding

继上篇 2018年python3与selenium教程第1节

动作链实现拖曳效果

拖曳效果演示地址

拖曳效果

源码:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver import ActionChains
import time

browser = webdriver.Chrome() # 声明浏览器
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
browser.get(url) # 访问网页
browser.switch_to.frame('iframeResult')
source = browser.find_element_by_css_selector('#draggable')
target = browser.find_element_by_css_selector('#droppable')
actions = ActionChains(browser)
actions.drag_and_drop(source, target)
actions.perform()
time.sleep(2)
browser.close() # 关闭浏览器

更多用法详见官方文档

执行Javascript

Selenium Api并没有提供所有操作的api, 但支持模拟运行Javascript, 所以我们可以自己写js代码实现

如:打开知乎,将进度条拉到最下方,然后弹出提示框

源码:

代码语言:javascript
复制
from selenium import webdriver
import time

browser = webdriver.Chrome() # 声明浏览器
url = 'https://www.zhihu.com/explore'
browser.get(url) # 访问网页
browser.execute_script('window.scrollTo(0, document.body.scrollHeight)') # 拉到底部
time.sleep(1)
browser.execute_script('alert("已经拉到底部了")') # 弹出提示框
time.sleep(2)
browser.close() # 关闭浏览器

获取节点信息

获取属性

源码

代码语言:javascript
复制
from selenium import webdriver
import time

browser = webdriver.Chrome() # 声明浏览器
url = 'https://www.zhihu.com/explore'
browser.get(url) # 访问网页
logo = browser.find_element_by_id('zh-top-link-logo')
print(logo)
print(logo.get_attribute('class')) # 获取属性值
time.sleep(2)
browser.close() # 关闭浏览器

结果

···bash

☁ crawler python3 test_selenium.py

<selenium.webdriver.remote.webelement.WebElement (session="f2edd53188f80a92556bfd40a79e7c59", element="0.8775386946103669-1")>

zu-top-link-logo

代码语言:javascript
复制
## 获取文本值

源码

```python

from selenium import webdriver

import time

browser = webdriver.Chrome() # 声明浏览器

url = 'https://www.zhihu.com/explore'

browser.get(url) # 访问网页

button = browser.find_element_by_id('zu-top-add-question')

print(button.text) # 获取节点文本值

time.sleep(2)

browser.close() # 关闭浏览器

代码语言:txt
复制
结果

```javascript

☁ crawler python3 test_selenium.py

提问

代码语言:txt
复制
## 获取其他信息

源码

```javascript

from selenium import webdriver

import time

browser = webdriver.Chrome() # 声明浏览器

url = 'https://www.zhihu.com/explore'

browser.get(url) # 访问网页

button = browser.find_element_by_id('zu-top-add-question')

print(button.id) # id

print(button.location) # 位置

print(button.tag_name) # 标签名

print(button.size) # 大小

time.sleep(2)

browser.close() # 关闭浏览器

代码语言:txt
复制
结果

```javascript

☁ crawler python3 test_selenium.py

0.3843517915558643-1

{'x': 842, 'y': 7}

button

{'height': 32, 'width': 66}

代码语言:txt
复制
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动作链实现拖曳效果
  • 执行Javascript
  • 获取节点信息
    • 获取属性
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档