如何使用 Selenium 通过 xpath 一致地单击图标

请参阅下面从开发人员工具复制的 xpath 表达式。


//*[@id="parentDiv"]/table/tbody/tr[1]/td[8]/div/profile-link-column/a/i

我想单击第一行中的第 8 个表数据(实际上是一个小图标),因此这可以正常工作 10 次中的 3 次。


有人可以建议更可靠的方法吗?


这是我的 HTML:


<td>

    <!--anchor-->

    <div class="animated-slide-in au-enter-active">

        <profile-link-column device-id="${value.value}" class="au-target" au-target-id="395">

            <a click.trigger="viewProfile()" class="au-target" au-target-id="55">

                <i class="fa fa-newspaper-o"></i>

            </a>

        </profile-link-column>

    </div>

    <!--anchor-->

    <!--anchor-->

    <!--anchor-->

    <!--anchor-->

    <!--anchor-->

</td>


慕标琳琳
浏览 230回答 2
2回答

皈依舞

要单击所需的元素,您必须诱导WebDriverWait使元素可单击,如下所示:new&nbsp;WebDriverWait(driver,&nbsp;TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td/div[@class='animated-slide-in&nbsp;au-enter-active']/profile-link-column[@class='au-target']/a[@class='au-target']/i[@class='fa&nbsp;fa-newspaper-o']"))).Click();
打开App,查看更多内容
随时随地看视频慕课网APP