Selenium中使用XPath定位元素的语法
IWebDriver driver = new ChromeDriver();
IWebElement el = driver.FindElement(By.XPath("your xpath"));
XPath定位元素常用语法
以大麦网登录界面为例:
- 找到元素唯一的属性,使用属性直接定位。
例:定位账号输入框,xpath路径如下:
"//input[@placeholder='请输入手机号或邮箱']"
按F12打开开发者工具,可以验证xpath是否正确,如下:
- 用text()匹配元素显示文字。
例:定位登录按钮,xpath路径如下:
"//button[text()='登录']"
- 通过子节点定位祖先节点。
例:定位表格,xpath路径如下:
方法1:"//button[text()='登录']/ancestor::form[@id='login-form']"
方法2:"//button[text()='登录']/../.."
- 通过邻居定位。
例:定位账号图标,xpath路径如下:
"//input[@placeholder='请输入手机号或邮箱']/../preceding-sibling::div//label"
- 采用多种属性匹配。
例:定位账号输入框,xpath如下:
"//input[@placeholder='请输入手机号或邮箱' and @name='fm-login-id']"
- 简化定位的2种小技巧:
- 使用contains匹配文字。
例:定位账号输入框,xpath如下:
"//input[contains(@placeholder,'邮箱')]"
- 使用通配符*定位节点。
例:定位账号输入框,xpath如下:
"//*[contains(@placeholder,'邮箱')]"