selenium webdriver(2)-page object positioning_html/css_WEB-ITnose
webdriver的元素定位很灵活,提供了多种定位方式:
Id
LinkText
PartialLinkText
Name
TagName
Xpath
ClassName
CssSelector
这些方法可以在org.openqa.selenium.By中找到,下面一一道来;
假如有这样的需求:登录安居客网站,搜索陆家嘴附近的二手房源,网页是这样的
这个需求涉及到一个输入框和一个提交按钮,先查看网页源码
在输入框中输入“陆家嘴”然后点击“二手房”按钮,如果能跳转到陆家嘴相关页面就完成了这个需求,我们尝试用webdriver提供的元素定位方法来解决
Id
id是唯一标识,通过id来定位是非常快速和准确的
1 |
|
Name
提交表单时可以通过name属性获取数据,较id来说并不常用,有id属性时建议优先使用id属性,上面的源码中text输入框是有name属性的,button依然用id来获取(当然,如果测试需要的话可以修改源码,没有修改源码权限的自动化测试是很难进行的)。
1 |
|
TagName
tagname一般用来获取批量数据,如统计页面链接数,输入框数量等等,用tagname来定位单一元素有点麻烦
1 |
|
ClassName
当标签具有class属性时也可使用classname来定位,不过要注意class的值不是唯一的findElement方法返回匹配到的第一个元素
1 |
|
Xpath
xpath相关教程可以参考w3school上的教程,为了程序的统一性,平时工作中我都是使用xpath来定位元素的
1 |
|
CssSelector
CssSelector教程可以参考css3-selectors,CssSelector和xpath应该是实际工作中用的最多的定位方法了,两者没有优劣之分,看个人喜好吧。
1 |
|
LinkText和PartialLinkText
LinkText和PartialLinkText用来定位网页中的超链接,需要a标签中的全部或部分内容即可。例如,需要访问热门版块中的古美罗阳可以这样定位
1 |
|
层级定位
webdriver提供了层级定位的方式即通过父元素访问其子元素,比如,输出热门版块下的所有版块
1 |
|

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The official account web page update cache, this thing is simple and simple, and it is complicated enough to drink a pot of it. You worked hard to update the official account article, but the user still opened the old version. Who can bear the taste? In this article, let’s take a look at the twists and turns behind this and how to solve this problem gracefully. After reading it, you can easily deal with various caching problems, allowing your users to always experience the freshest content. Let’s talk about the basics first. To put it bluntly, in order to improve access speed, the browser or server stores some static resources (such as pictures, CSS, JS) or page content. Next time you access it, you can directly retrieve it from the cache without having to download it again, and it is naturally fast. But this thing is also a double-edged sword. The new version is online,

The article discusses using HTML5 form validation attributes like required, pattern, min, max, and length limits to validate user input directly in the browser.

This article demonstrates efficient PNG border addition to webpages using CSS. It argues that CSS offers superior performance compared to JavaScript or libraries, detailing how to adjust border width, style, and color for subtle or prominent effect

Article discusses best practices for ensuring HTML5 cross-browser compatibility, focusing on feature detection, progressive enhancement, and testing methods.

The article discusses the HTML <datalist> element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

The article discusses the HTML <meter> element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates <meter> from <progress> and ex

This article explains the HTML5 <time> element for semantic date/time representation. It emphasizes the importance of the datetime attribute for machine readability (ISO 8601 format) alongside human-readable text, boosting accessibilit

The article discusses the HTML <progress> element, its purpose, styling, and differences from the <meter> element. The main focus is on using <progress> for task completion and <meter> for stati
