2016-05-13 2 views
0

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

Вот мой код:

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; 

ответ

0

С установкой ниже я попытался воссоздать описанную ситуацию. Сценарий .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 ']")