我正在尝试为一个小项目在静态页面中找到两个字符串。 使用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新手)
答案 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