当前位置:首页 > Web开发 > 正文

动态html,异步加载页面的处理

2024-03-31 Web开发

标签:

Selenium 基本使用

# 导入 webdriver
from selenium import webdriver
# 调用键盘按键操作时需要引入的Keys包
from selenium.webdriver.common.keys import Keys
# 调用环境变量指定的PhantomJS浏览器创建浏览器对象
driver = webdriver.PhantomJS()
# 如果没有在环境变量指定PhantomJS位置
# driver = webdriver.PhantomJS(executable_path="./phantomjs"))
# get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在这里选择 time.sleep(2)
driver.get("http://www.baidu.com/")
# 获取页面名为 wrapper的id标签的文本内容
data = driver.find_element_by_id("wrapper").text
# 打印数据内容
print data
# 打印页面标题 "百度一下,你就知道"
print driver.title
# 生成当前页面快照并保存
driver.save_screenshot("baidu.png")
#是百度搜索输入框,输入字符串"长城"
driver.find_element_by_id("kw").send_keys(u"长城")
#是百度搜索按钮,click() 是模拟点击
driver.find_element_by_id("su").click()
# 获取新的页面快照
driver.save_screenshot("长城.png")
# 打印网页渲染后的源代码
print driver.page_source
# 获取当前页面Cookie
print driver.get_cookies()
# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘a‘)
# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘x‘)
# 输入框重新输入内容
driver.find_element_by_id("kw").send_keys("itcast")
# 模拟Enter回车键
driver.find_element_by_id("su").send_keys(Keys.RETURN)
# 清除输入框内容
driver.find_element_by_id("kw").clear()
# 生成新的页面快照
driver.save_screenshot("itcast.png")
# 获取当前url
print driver.current_url
# 关闭当前页面,如果只有一个页面,会关闭浏览器
# driver.close()
# 关闭浏览器
driver.quit()
————————————————
版权声明:本文为CSDN博主「DeltaTime」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bua200720411091/article/details/93378461

定位元素

‘‘‘
find_element_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
‘‘‘
# <div>...</div>
element = driver.find_element_by_id("coolestWidgetEvah")
# <div><span>Cheddar</span></div>
cheeses = driver.find_elements_by_class_name("cheese")
# <iframe src="http://www.mamicode.com/..."></iframe>
frame = driver.find_element_by_tag_name("iframe")
# <input type="text"/>
cheese = driver.find_element_by_name("cheese")
# <a href="http://www.google.com/search?q=cheese">cheese</a> 根据链接的文本查找
cheese = driver.find_element_by_link_text("cheese")
# <div><span>milk</span><span>cheese</span></div>
cheese = driver.find_element_by_css_selector("#food span.dairy.aged")
# <input type="text" />
# <input type="text" />
inputs = driver.find_elements_by_xpath("//input")
————————————————
版权声明:本文为CSDN博主「DeltaTime」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bua200720411091/article/details/93378461

获取属性值

driver.get(‘https://www.baidu.com/‘) submitBtn = driver.find_element_by_id(‘su‘) value = submitBtn.get_attribute("value") # 获取属性值

屏幕截图

driver.save_screenshot(‘baidu.png’)

select下拉框处理

‘‘‘
<select οnchange="">
<option value=""></option>
<option value="0">未审核</option>
<option value="1">初审通过</option>
<option value="2">复审通过</option>
<option value="3">审核不通过</option>
</select>
‘‘‘
# 导入 Select 类
from selenium.webdriver.support.ui import Select
# 找到 name 的选项卡
select = Select(driver.find_element_by_name(‘status‘))
# 选择选项
# index 索引从 0 开始
# value是option标签的一个属性值,并不是显示在下拉框中的值
# visible_text是在option标签文本的值,是显示在下拉框的值
select.select_by_index(1)
select.select_by_value("0")
select.select_by_visible_text(u"未审核")
# 取消全部
select.deselect_all()
————————————————
版权声明:本文为CSDN博主「DeltaTime」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bua200720411091/article/details/93378461

弹窗处理

alert = driver.switch_to_alert()

页面前进后退

driver.forward() # 前进 driver.back() # 后退

获取cookies

#encoding: utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/43005.html