Selenium:单击xpath不起作用的对象

时间:2016-10-19 08:06:29

标签: selenium

XML快照:

<img id="reg_img_304316340" class="btnimg" style="top:0px; left:0px;
width:23px; height:140px;" title="Show Application List" 
alt="Show Application List" arimgcenter="1" artxt="Show Application List" aralttxt="1" 
src="../../../../imagepool/transparent_remedyappdc1?cid=1">

我正在尝试以下代码,但无效

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='reg_img_304316340']")));
driver.findElement(By.xpath(".//*[@id='reg_img_304316340']")).click();

如果有任何需要更新的话,请更正

3 个答案:

答案 0 :(得分:0)

如果id不是动态的,请尝试java脚本执行器单击元素

WebElement element = driver.findElement(By.id("reg_img_304316340"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

答案 1 :(得分:0)

看起来id属性值在这里是动态的,您应该尝试使用不同的定位器。

我建议,尝试使用By.cssSelector(),如下所示: -

 wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("img.btnimg[title='Show Application List']"))).click();

答案 2 :(得分:0)

// div [@ id ='divld9T-MckddA'] / div [@ class ='item-img'] / a [@ class ='imgObject'] / img

请在父元素内指定标签的类或标识符 如上例所示,img元素就是要单击的元素。在我的情况下,id是动态生成的