无法在selenium

时间:2017-12-18 22:33:38

标签: java html css selenium xpath

我在下面给出了代码,我需要点击过滤器图标。请帮帮我

我已尝试将代码用作

WebElement element1= driver.findElement(By.xpath("//*[@id=\"grdAutoLaborOps_active_cell\"]/a[1]/span"));
JavascriptExecutor executor = (JavascriptExecutor) driver; 
executor.executeScript("arguments[0].click();", element1);



<th class="k-header k-filterable k-with-icon" data-field="Status" data-index="8" data-title="Status" scope="col" style="overflow: visible; white-space: normal;font-weight: bold;width:70px; vertical-align:top;" data-role="columnsorter" id="grdAutoLaborOps_active_cell" aria-describedby="grdAutoLaborOps_active_cell"> 
    <a class="k-grid-filter" href="javascript:void(0)" tabindex="-1">
        <span class="k-icon k-filter"></span>
    </a> 
    <a class="k-link" href="/tracs/tracs/LaborOps/AutoLaborOps_Read?grdAutoLaborOp‌​s-sort=Status-asc" tabindex="-1">Status</a>
</th>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您可以尝试直接点击<span>元素或<th>元素之前的<span>类。

SPAN:

driver.findElement(By.cssSelector("span[class*='filter']")).click()

它基本上意味着&#34;查找<span>元素属性class CONTAINS filter

TH:

您的代码几乎是正确的。行//*[@id=\"grdAutoLaborOps_active_cell\"]包含反斜杠,告诉java NOT解析"。这导致跟随xpath @id=grdAutoLaborOps_active_cell。你应该使用这样的单引号:

//*[@id='grdAutoLaborOps_active_cell']

或使用cssSelector

driver.findElement(By.id("grdAutoLaborOps_active_cell")).click();