selenium定位元素之By.className()和By.cssSelector()



元素的class属性值只有一个的时候可以使用className,<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="word">

driver.findElement(By.className("s_ipt")).sendKeys("Hello, world");

如果元素指定了若干个class属性值的“复合样式”的情况就使用cssSelector,如<input id="su" class="bg s_btn" type="submit" value="百度一下">

driver.findElement(By.classSelector("input.bg.s_btn")).sendKeys("Hello, world");


input.bg.s_btn 也可写成 input[class='bg s_btn']


xpath和css对应写法

Direct child     //div /a  ----------  div > a

Child    //div //a  ----------  div a


Match sub string

css=input[id^='aaa']      ----------  input element id start with aaa

css=input[id*='aaa']     ----------  input element id contains aaa

css=input[id$='aaa']     ----------  input element id end with aaa


Match innner text

css=input:contains('aaa')     ---------- input element inner text contains aaa

css=input:not(contains('aaa'))     ----------  input element which inner text not contains aaa


Use several attribute to describe

input[class='aa'] [type='button']

你可能感兴趣的:(selenium)