Selenium XPath找不到元素

Selenium XPath找不到元素,selenium,xpath,Selenium,Xpath,我创建的XPath: //*[@id='stepcagats']/div[2]/div[3]/div[2]/ul/li[1]/span 使用这个xPath,我得到了一条消息:NoTouchElementException 下面是我的html代码: <div id="stepCongrats"> <div id="ancillary-congratulations"></div> <div id="elephant"></div> &l

我创建的XPath:

//*[@id='stepcagats']/div[2]/div[3]/div[2]/ul/li[1]/span
使用这个xPath,我得到了一条消息:NoTouchElementException

下面是我的html代码:

<div id="stepCongrats">
<div id="ancillary-congratulations"></div>
<div id="elephant"></div>
<div class="sect">
    <div class="s-header"></div>
    <div class="s-nav"></div>
    <div class="s-body">
        <div class="s-policyholder"></div>
        <div class="s-policyinfo">
            <ul>
                <li>
                    <h6>
                        Policy number
                    </h6>
                    <span>
                        247-000-001-13
                    </span>

  • 保单号码 247-000-001-13
在XPath中,列表中的元素从1开始编号,而不是从0开始编号
div[2]
是大象,而不是教派。只需增加索引:

.//*[@id='stepCongrats']/div[3]/div[3]/div[2]/ul/li[1]/span

在XPath中,列表中的元素从1开始编号,而不是从0开始编号
div[2]
是大象,而不是教派。只需增加索引:

.//*[@id='stepCongrats']/div[3]/div[3]/div[2]/ul/li[1]/span


//h6/span/
是XPath,或者您可以使用FireFox的FirePath插件获得完美的XPath

//h6/span/
是XPath,或者您可以使用FireFox的FirePath插件获得完美的XPath

如果您使用chrome,右键单击元素并选择“复制XPath”,然后将其粘贴到代码中。@marounnaroun当我复制xpath时,它给了我相同的://*[@id=“StepCongreats”]/div[2]/div[3]/div[2]/ul/li[1]/span,但当我运行脚本时,它说找不到元素。这看起来像是一个经典的Selenium计时问题。当您试图找到它时,元素可能还不存在。它可以异步创建。如果您正在使用chrome,请右键单击元素并选择“复制XPath”,然后将其粘贴到代码中。@MarounMaroun当我复制XPath时,它给了我相同的://*[@id=“stepcagrats”]/div[2]/div[3]/div[2]/ul/li[1]/span,但当我运行脚本时,它会说找不到元素。这看起来像是一个经典的Selenium计时问题。当您试图找到它时,元素可能还不存在。它可以异步创建。我已经将xpath更改为:./*[@id='stepcagats']/div[3]/div[4]/div[3]/ul/li[1]/span,但仍然得到相同的nosuche元素exception@user3464008:对不起,我没有检查其他索引。检查更新(已测试)。如果没有进行增量操作,我已将xpath更改为:./*[@id='stepcagats']/div[3]/div[4]/div[3]/ul/li[1]/span,但仍然得到相同的NoTouchElementexception@user3464008:对不起,我没有检查其他索引。检查更新(已测试)。
//dic[@class='s-policyinfo]/ul/li/span