Selenium python定位器无法正常工作

时间:2012-01-06 22:10:54

标签: python xpath selenium

当我尝试在页面上查找元素时,我被selenium python关闭了。我的一些定位器正在工作,而其他定位器则没有。例如:

  • 这有效: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属性的元素,然后单击其父元素链接)。

我在Windows XP上使用Selenium Server 2.15.0和python绑定v2.0b3和Firefox 8.0。

1 个答案:

答案 0 :(得分:0)

页面网址会有所帮助,因为如果网址为: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>

如果不是这种情况 - 在DOMContentLoad事件被触发后,有可能将这些元素添加到DOM中,并且在使用之前需要等待它们。