2018年python3与selenium教程第2节
继上篇 2018年python3与selenium教程第1节
动作链实现拖曳效果
【2018年python3与selenium教程第2节】拖曳效果演示地址
文章图片
拖曳效果 源码:
from selenium import webdriver
from selenium.webdriver import ActionChains
import timebrowser = 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代码实现
如:打开知乎,将进度条拉到最下方,然后弹出提示框
源码:
from selenium import webdriver
import timebrowser = 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() # 关闭浏览器
获取节点信息 获取属性 源码
from selenium import webdriver
import timebrowser = 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
zu-top-link-logo
## 获取文本值源码```python
from selenium import webdriver
import timebrowser = 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() # 关闭浏览器
结果
?crawlerpython3 test_selenium.py
提问
获取其他信息 源码
from selenium import webdriver
import timebrowser = 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() # 关闭浏览器
结果
?crawlerpython3 test_selenium.py
0.3843517915558643-1
{'x': 842, 'y': 7}
button
{'height': 32, 'width': 66}
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 第326天
- Shell-Bash变量与运算符
- 2018年9月5日,星期三,天气晴
- 前任
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法