Selenium python locators не работают - PullRequest
1 голос
/ 07 января 2012

Я отключаюсь селеновым питоном, когда пытаюсь найти элементы на странице. Некоторые из моих локаторов работают, а другие нет. Например:

  • Это работает: 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 Server 2.15.0 и привязки python v2.0b3 и Firefox 8.0 в Windows XP.

1 Ответ

0 голосов
/ 07 января 2012

URL страницы поможет, потому что, если URL: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2586675/ - все атрибуты src и href в вашем html-фрагменте отличаются:

<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>

И если это не так - то естьвероятность того, что эти элементы будут добавлены в DOM после запуска события DOMContent или Load, и вам нужно подождать их перед использованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...