Selenium简单基础详解(II)

简介: 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

想系统/深入学习某技术知识点…

一个人摸索学习很难坚持,想组团高效学习…

想写博客但无从下手,急需写作干货注入能量…

热爱写作,愿意让自己成为更好的人…


承接上文,继续列举Selenium的基操


四、元素操作

1、获取文本

ret = browser.find_element_by_class_name('element')

print(ret[0].text)

2、获取属性值

ret = browser.find_element_by_tag_name('a')

print(ret[0].get_attribute('href'))

五、前进后退

# 前进

browser.forward()

# 后退

browser.back()

六、执行js

from selenium import webdriver

browser = webdriver.Chrome()

url = 'https://www.baidu.com/'

browser.get(url)

js = 'window.scrol1To(O,document.body.scrollHeight)'  # js语句

browser.execute_script(js) # 执行js的方法

browser.quit()

七、页面等待

现在的网页大部分采用了Ajax技术


(AJAX即“Asynchronous JavaScript and XML”(非同步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由杰西·詹姆士·贾瑞特所提出[1]。)来自维基百科


非同步的技术导致程序不能精准地确定什么时间什么元素完全加载完成,如果实际页面等待时间过长,这将会导致元素不完全,但是代码将会直接使用,所以就会报错。


为了避免这种元素不好定位且错误概率高,Selenium提供了两种等待方式


       1.隐式等待

               隐式等待是指等待特定的时间


               隐式等待针对的是元素定位。它设置了一个时间,判断在该时间段内,元素定位是否成功。


               如果成功了,就进行下一步。如果没成功,就直接报超时。


from selenium import webdriver

driver = webdriver.Chrome()

driver.implicitly_wait(10) # 隐式等待10秒

driver.get('https://www.baidu.com/')

myDynamicElement = driver.find_element_by_id("input")

       2.显式等待

               显式等待是指定的某一条件成立时继续执行


               即等待某个指定的元素,然后设置最长等待时间,如果在这个时间内还没有找到元素,则程序将会抛出异常。


from selenium import webdriver

from selenium.webdriver.common.by import By

# WebDriverWait 库,负责循环等待

from selenium.webdriver.support.ui import WebDriverWait

# expected_conditions 类,负责条件出发

from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

try:

   # 页面一直循环,直到 id="input" 出现

   element = WebDriverWait(driver, 10).until(

       EC.presence_of_element_located((By.ID, "input"))

   )

finally:

   driver.quit()

目录
相关文章
|
Web App开发 数据采集 前端开发
什么是Selenium
什么是Selenium
218 0
|
3月前
|
Web App开发 前端开发
Selenium WebDriver
【8月更文挑战第9天】
50 7
|
3月前
|
JavaScript
[selenium]等待
[selenium]等待
|
4月前
|
Python
安装selenium
安装selenium
42 0
|
6月前
|
Web App开发 IDE 测试技术
Selenium WebDriver使用
Selenium WebDriver使用
53 1
|
6月前
|
Java 测试技术 持续交付
深入理解与应用Selenium WebDriver进行自动化测试
【4月更文挑战第25天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速市场发布的关键步骤。Selenium WebDriver作为业界广泛采用的自动化测试工具之一,提供了一种灵活且高效的方式来模拟用户与Web应用程序交互。本文将探讨Selenium WebDriver的核心概念、架构以及实际应用中的技巧和最佳实践。通过深入分析其工作原理及常见问题解决方案,旨在帮助测试工程师提升测试效率,确保测试结果的准确性和可靠性。
86 1
|
Web App开发 Java 测试技术
selenium-介绍和安装
selenium-介绍和安装
|
6月前
|
Web App开发 Shell Python
|
Web App开发 前端开发 JavaScript
selenium使用总结
selenium使用总结
56 0