Selenium python定位器不工作

2024-10-01 07:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图在页面上查找元素时,我会被seleniumpython关闭。我的一些定位器工作正常,其他的没有。例如:

  • 这是有效的:sel.get_text("//div[@class='fm-title']")
  • 这是有效的:sel.click("link=Scheme 1")

但以下都给了我一个错误:元素找不到

  • sel.click("//a[@href='pmc/articles/instance/2586675/figure/F10/']")
  • sel.get_attribute("//img[@src-large='/pmc/articles/instance/2586675/bin/nihms61582f10.jpg']@title")
  • sel.get_attribute("//img[@src-large='/pmc/articles/instance/2586675/bin/nihms61582f10.jpg']/@title")
  • sel.click("//img[@src-large='/pmc/articles/instance/2586675/bin/nihms61582f10.jpg']")

在相关源代码片段上:

<div class="fm-title">Structural Insights into the Mechanism of the PLP Synthase Holoenzyme from <em>Thermotoga maritima</em> 

<a href="/pmc/articles/instance/2586675/figure/F10/" class="icon-reflink figpopup" target="figure" onclick="return startTarget(this, 'figure', 1024, 800)">
    <div class="small-thumb-canvas">
        <div class="small-thumb-canvas-1">
            <img src="/pmc/articles/instance/2586675/bin/nihms61582f10.gif" class="icon-reflink small-thumb" alt="Scheme 1" title="Scheme 1" src-large="/pmc/articles/instance/2586675/bin/nihms61582f10.jpg" />
        </div>
    </div>
</a>

最终我要做的是单击一个通过src large属性找到的链接(或者找到具有该src large属性的元素,然后单击其父元素链接)。在

我使用的是Selenium服务器2.15.0和python绑定v2.0b3和windowsxp上的firefox8.0。在


Tags: instancedivsrc元素imgbintitlearticles
1条回答
网友
1楼 · 发布于 2024-10-01 07:24:47

页面url会有所帮助,因为如果url是:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2586675/ -html代码段中的所有src和href属性都不同:

<a href="/pmc/articles/PMC2586675/figure/F10/" class="icon-reflink figpopup"
 target="figure" onclick="return startTarget(this, 'figure', 1024, 800)"
 canvas-rid="_cid___pmc_articles_PMC2586675_bin_nihms61582f10_jpg_">
  <div class="small-thumb-canvas">
    <div class="small-thumb-canvas-1">
       <img src="/pmc/articles/PMC2586675/bin/nihms61582f10.gif"
        class="icon-reflink small-thumb" alt="Scheme 1" title="Scheme 1"
        src-large="/pmc/articles/PMC2586675/bin/nihms61582f10.jpg">
    </div>
  </div>
</a>

如果不是这样的话,那么在DOMContent或{}事件被触发后,这些元素就有可能被添加到DOM中,您需要在使用之前等待它们。在

相关问题 更多 >