java +Selenium 定位页面元素时,cssSelector 是其中一个非常实用的定位方式,可以选取页面中该 div 中的一个唯一的属性
页面元素:
<div class="good_list" xpath="1">
<div class="good_item testcls" tag="notPackage" gid="100124">
<div class="fl le_width_116 i_action" style="visibility:visible" xpath="1">
<div class="content_item active" iddf="1023764" tag="setGroupBackground" xpath="1">
<button leclick="onClickFav" xpath="1">移入收藏夹</button>
<button leclick="onClickRemove" tag="removeMainSku" xpath="1">删除</button>
</div>
</div>
</div>
<div class="good_item testcls alreadly_sold" tag="notPackage" gid="100137">
<button leclick="onClickRemove" tag="removeMainSku" xpath="1"> 删除 </button>
</div>
</div>
Selenium 定位页面元素时,当选用 class 属性来定位时需要注意,当class 的值是有空格时,需要用.来分隔,如: By.cssSelector(".content_item.active")或者By.className(".content_item.active")
cssSelector 可以取到页面元素中 某个属性,用[] 修饰,如By.cssSelector("[leclick=\"onClickRemove\"]")
获取正常商品list
driver.findElements(By.cssSelector(".content_item.active"));
获取 已失效商品list
List <WebElement> expiredElements=driver.findElements(By.cssSelector(".good_item.testcls.alreadly_sold"))
已失效商品 所对应的 删除按钮
expiredElements.findElement(By.cssSelector("[leclick=\"onClickRemove\"]"));