addinfourl实例没有属性'find'(python2.7)

时间:2018-12-28 16:22:09

标签: python-2.7 gitlab-ci-runner

我正在尝试为一个小项目在静态页面中找到两个字符串。 使用Python 2.7且无法升级(我必须使用给定的公共运行程序)。 我已经编写了这段代码:

import urllib
url = "https://the-internet.herokuapp.com/context_menu"
webtxt = urllib.urlopen(url)
print webtxt.read()

str1 = "Right-click in the box below"
str2 = "Alibaba"

isRightClickText = webtxt.find(str1)
IsAlibaba = webtxt.find(str2)

def testRightClick():
    assert isRightClickText > -1

def testIsAlibaba():
    assert IsAlibaba > -1

应该为第一个字符串通过测试,为第二个字符串失败。

在Gitlab CI \ CD中运行此代码会不断返回:

E AttributeError:addinfourl实例没有属性'find'

我已经审查了与属性问题相关的类似帖子,但似乎不相关。

欢迎任何帮助! (我是Python新手)

1 个答案:

答案 0 :(得分:0)

错误显示addinfourl实例找不到属性。请尝试了解webtext的类型。

print type(webtext) #Gives the type of webtext as <type 'instance'>

因此,您所需要做的就是将webtext转换为string数据类型,以便使用find()方法。

将此行webtxt = urllib.urlopen(url)更改为webtxt = str(urllib.urlopen(url))

因此,最终代码将类似于:

import urllib
url = "https://the-internet.herokuapp.com/context_menu"
webtxt = str(urllib.urlopen(url))
print webtxt.read()

str1 = "Right-click in the box below"
str2 = "Alibaba"

isRightClickText = webtxt.find(str1)
IsAlibaba = webtxt.find(str2)

def testRightClick():
    assert isRightClickText > -1

def testIsAlibaba():
    assert IsAlibaba > -1