如何单击位于另一个跨度内的跨度内的按钮?

How to click a button located within a span within another span?

我尝试使用 xpathcssSelectorid 查找元素。似乎没有任何效果。

<span class="a-button a-spacing-top-mini s-small-margin-left" id="a-autoid-60">
    <span class="a-button-inner">
        <input class="a-button-input" type="submit" value="Go" aria-labelledby="a-autoid-60-announce">
        <span class="a-button-text" aria-hidden="true" id="a-autoid-60-announce">Go</span>
    </span>
</span>

为输入提交按钮添加一个id。也就是说:

    <input id="mySubmitButton" class="a-button-input" type="submit" ....

那么你应该可以做到:

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

但是,如果您出于某种原因真的不想添加 id,只需通过 cssSelector 搜索:

    driver.findElement(By.cssSelector("#a-autoid-60 .a-button-inner input")).click();

你试过用定位吗?如果没有,那么您可以使用:

driver.findElement(By.value("GO")).click;  

您可以将 cssSelector 用作:

driver.findElement(By.cssSelector("span[class$='button-inner']>input")) 

您可以使用 Xpath 作为:

//input[contains(@class,'button-input')][@value='Go']  

:

  1. 你应该总是先选择 ID,然后是 classNamevaluetagNamelinkTextpartialLinkText ,然后是 cssSelector 如果没有任何效果然后 Xpath
  2. 您的 ID 问题是,它包含 数字,我们不知道它何时会更改,因此 ID 不一致 在你的情况下。

希望对您有所帮助! 如果您对此有任何疑虑,请告诉我。