python split将unicode元素列表与字符串进行比较



我想从名为"ListFirst"的iframe中获取所有锚标记文本。我正在尝试迭代文本,并将每个文本与我要单击的字符串"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;

通过下面的设置,我试图重新创建您描述的情况。下面的.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>

测试.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 ']")

相关内容

  • 没有找到相关文章

最新更新