Selenium:点击<li>

时间:2017-12-06 15:06:05

标签: java selenium selenium-webdriver

我有以下HTML代码,我想点击第二个选项&#34;计划b&#34;。

<ul class="clearfix all">
<li data-content="a" data-tab-target="tab1" class="active"><span>Plan a</span</li>
<li data-content="b" data-tab-target="tab2" class=""><span>Plan b</span></li>
<li data-content="c" data-tab-target="tab3" class=""><span>Plan c</span></li>/ul>

我试着做这样的事情:

1

@FindBy(css = "li:nth-child(2)")
WebElement sparpreis;
sparpreis.click();

2

@FindBy(xpath = "//*[@class='clearfix all']/ul/li[2]")
WebElement sparpreis;
sparpreis.click();

我的错误讯息:

  1. org.openqa.selenium.ElementNotVisibleException:元素不可见

  2. org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{&#34;方法&#34;:&#34; xpath&#34;,&#34;选择器&#34; :&#34; // * [@ class =&#39; clearfix all&#39;] / ul / li [2]&#34;}

  3. Perhaphs我应该激活第二个&#34;类&#34;?

2 个答案:

答案 0 :(得分:1)

不需要/ ul,请尝试以下操作:

@FindBy(xpath = "//ul[contains(@class, 'clearfix all')]/li[2]")

答案 1 :(得分:0)

根据您分享的HTML,点击第二个选项 Plan b ,您可以使用以下任一代码块:

  • <强> css

    @FindBy(css = "ul.clearfix.all li[data-content=b] > span")
    WebElement sparpreis;
    sparpreis.click();
    
  • <强> xpath

    @FindBy(xpath = "//ul[@class='clearfix all']//li[@data-content='b']/span")
    WebElement sparpreis;
    sparpreis.click();