Python regex AttributeError:' NoneType'对象没有属性' group'

时间:2015-06-21 10:53:40

标签: python regex attributeerror

我使用Regex从selenium.webDriver的网页上的搜索框中检索某些内容。

searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()

只要搜索框返回与Regex匹配的结果,代码就会起作用。但如果搜索框回复字符串"No results",我会收到错误:

  

AttributeError:' NoneType'对象没有属性' group'

如何让脚本处理"No results"情况?

2 个答案:

答案 0 :(得分:8)

我设法找出了这个解决方案,它与忽略group()因为搜索框回复为"No results"并且因此与正则表达式不匹配的情况有关。

try:
    searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except AttributeError:
    searchbox_result = re.match("^.*(?=(\())", searchbox)

或简单地说:

try:
    searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except:
    searchbox_result = None

答案 1 :(得分:4)

当你这样做时

a1

然后如果未找到匹配项,则会返回None

  

如果字符串与模式不匹配,则返回a2;请注意,这与零长度匹配不同。

在应用re.match("^.*(?=(\())", search_result.text) 之前,您应该检查是否有结果:

None