无法在selenium中单击网格上的过滤器

问题描述 投票:0回答:1

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

我尝试过使用代码

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>
java html css selenium xpath
1个回答
0
投票

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

跨度:

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

它基本上意味着“找到<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();

© www.soinside.com 2019 - 2024. All rights reserved.