2018年python3与selenium教程第2节

继上篇 2018年python3与selenium教程第1节
动作链实现拖曳效果 【2018年python3与selenium教程第2节】拖曳效果演示地址
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}

    推荐阅读