selenium Enabled

本文介绍如何使用WebDriver进行页面导航及与HTML元素交互的方法。通过调用get方法可以打开指定网页,WebDriver会等待页面完全加载。此外,还介绍了多种查找页面元素的方式,包括按ID、名称、XPath和CSS选择器等。

3. Navigating

The first thing you’ll want to do with WebDriver is navigate to a link. The normal way to do this is by calling get method:

driver.get("http://www.google.com")

WebDriver will wait until the page has fully loaded (that is, the onload event has fired) before returning control to your test or script. Be aware that if your page uses a lot of AJAX on load then WebDriver may not know when it has completely loaded. If you need to ensure such pages are fully loaded then you can use waits.

3.1. Interacting with the page

Just being able to go to places isn’t terribly useful. What we’d really like to do is to interact with the pages, or, more specifically, the HTML elements within a page. First of all, we need to find one. WebDriver offers a number of ways to find elements. For example, given an element defined as:

<input type="text" name="passwd" id="passwd-id" />

you could find it using any of:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
element = driver.find_element_by_css_selector("input#passwd-id")
Selenium是一个用于Web自动化测试的工具,以下从使用指南、教程、应用场景和解决方案几个方面介绍相关信息: ### 使用指南 在使用Selenium时,首先需要导入相应的库,如`from selenium import webdriver`,并选择合适的浏览器驱动,如Chrome浏览器使用`webdriver.Chrome()`。之后可以使用`driver.get(url)`方法打开指定网页。定位元素是关键步骤,可通过不同方式,如`find_element_by_id`、`find_element_by_link_text`、`find_element_by_css_selector`等。获取元素相关信息时,有多种方法可用: - 获取元素属性信息:使用`get_attribute('id/name/value等')`方法,例如获取搜索按钮的id属性`ele1.get_attribute('id')`,获取搜索框的name属性`ele2.get_attribute('name')`等 [^1]。 - 获取元素的CSS属性值:可以通过相关方法获取元素的CSS属性值 [^1]。 - 获取元素大小、文本、标签名:使用`.tag_name`输出元素的标签名,`.size`输出元素的大小,`.text`输出元素的文本(适用于链接元素),如`print(ele.tag_name)`、`print(ele.text)`、`print(ele.size)` [^3]。 - 判断元素状态:使用`is_displayed()`判断元素是否可见,`is_selected()`判断元素是否被选中,`is_enabled()`判断元素是否可用 [^2][^4]。 ### 教程示例代码 #### 获取元素属性信息 ```python from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("https://www.baidu.com/") ele1 = driver.find_element_by_id('su') # 通过id定位百度搜索按钮 ele2 = driver.find_element_by_id('kw') # 通过id定位百度搜索框 print(ele1.get_attribute('id')) # 输出搜索按钮的id属性 print(ele2.get_attribute('name')) # 输出搜索框的name属性 print(ele1.get_attribute('value')) # 输出按钮的文字,也就是value属性 print(type(ele1.get_attribute('name'))) print(ele1.get_attribute('name')) driver.quit() ``` #### 获取元素大小、文本等信息 ```python from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("https://www.baidu.com/") # 打开百度首页 ele = driver.find_element_by_link_text('新闻') # 将新闻这个元素赋给变量ele print(ele.tag_name) # 输出标签名 print(ele.text) # 输出文本 print(ele.size) # 输出大小 driver.quit() ``` #### 获取元素状态信息 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("http://news.baidu.com/") # 新闻标题 element1 = driver.find_element_by_css_selector("label[class='not-checked']") # 新闻标题选择框 element2 = driver.find_element_by_css_selector("#newstitle") # 新闻标题的大小({'height', 'width'}) print(element1.size) # 新闻标题的文本 print(element1.text) # 新闻标题是否可见 print(element1.is_displayed()) # 新闻标题标签内的for属性 print(element1.get_attribute("for")) # 新闻标题选择框是否被选中 print(element2.is_selected()) ``` ### 应用场景 - 自动化测试:对Web应用进行功能测试、兼容性测试等,模拟用户在浏览器中的各种操作,如点击、输入等,验证页面的功能是否正常。 - 数据采集:从网页中自动提取所需的数据,如新闻标题、商品信息等。 ### 解决方案 - 元素定位失败:可尝试使用不同的定位方式,如id、class、css选择器等;检查元素是否在iframe中,若在则需要先切换到iframe中再进行定位。 - 页面加载缓慢:可使用`WebDriverWait`设置显式等待,等待元素加载完成后再进行操作,避免因元素未加载完成而导致定位失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值