Осколок python, сравнивающий юникодный список элементов со строкой

Я хочу получить весь текст тега привязки из iframe с именем "ListFirst". Я пытаюсь перебрать текст и сравниваю каждый из них со строкой "AGENT-WIN3E64", которую я хочу щелкнуть. Но сравнение, которое я здесь сделал, e['text'] == u'AGENT-WIN3E64 'становится ложным событием, хотя строки такие же. Пожалуйста помоги.

Вот мой код:

  with iframe12.get_iframe('ListFirst') as iframe1231:
        anchorList=iframe1231.find_by_tag('a')   
        for e in anchorList:
            if e['text'] == u'AGENT-WIN3E64 ':   #unicode string comparison
                e.click()
                break;

1 ответ

С настройкой ниже я попытался воссоздать ситуацию, которую вы описываете. .py Скрипт ниже, кажется, находит якорь очень хорошо, хотя.

index.html,

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <iframe name="mainframe" src="iframe1.html"></iframe>
    </body>
</html>

iframe1.html,

<html>
        <head></head>
        <body>
                <iframe name="childframe" src="iframe2.html"></frame>
        </body>
</html>

iframe2.html,

<html>
        <head></head>
        <body>
                <a href="/a">AGENT-WIN3E64 </a>
                <a href="/b">b</a>
                <a href="/c">c</a>
                <a href="/d">d</a>
                <a href="/e">e</a>
        </body>
</html>

test.py

from splinter import Browser

browser = Browser('firefox', wait_time=10)
browser.visit("http://localhost:8000/index.html")

# get mainframe
with browser.get_iframe('mainframe') as mainframe:

    # get childframe
    with mainframe.get_iframe('childframe') as childframe:

        anchorList = childframe.find_by_tag('a')
        for e in anchorList:
            if e['text'] == u'AGENT-WIN3E64 ':   #unicode string comparison
                print "found anchor"
                e.click()
                break;

Это выводы,

found anchor

Но обратите внимание, что вы также можете найти привязку напрямую, используя xpath,

anchor = childframe.find_by_xpath("//a[text() = 'AGENT-WIN3E64 ']")
Другие вопросы по тегам