当我尝试在页面上查找元素时,我被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。
答案 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>
如果不是这种情况 - 在DOMContent
或Load
事件被触发后,有可能将这些元素添加到DOM中,并且在使用之前需要等待它们。