Осколок 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 ']")