Win*_*ags 7 python regex attributeerror
我使用Regex从网页上的搜索框中检索某些内容selenium.webDriver.
searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()
Run Code Online (Sandbox Code Playgroud)
只要搜索框返回与Regex匹配的结果,代码就会起作用.但如果搜索框回复字符串,"No results"我会收到错误:
AttributeError:'NoneType'对象没有属性'group'
如何让脚本处理这种"No results"情况?
Win*_*ags 10
我设法找出这个解决方案,它与忽略group()搜索框回复的情况有关"No results",因此与正则表达式不匹配.
try:
searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except AttributeError:
searchbox_result = re.match("^.*(?=(\())", searchbox)
Run Code Online (Sandbox Code Playgroud)
或者干脆:
try:
searchbox_result = re.match("^.*(?=(\())", searchbox.group()
except:
searchbox_result = None
Run Code Online (Sandbox Code Playgroud)
当你做
re.match("^.*(?=(\())", search_result.text)
Run Code Online (Sandbox Code Playgroud)
然后如果没有找到匹配项,None将返回:
None如果字符串与模式不匹配,则返回;请注意,这与零长度匹配不同。
在申请之前,您应该检查是否获得了结果group:
res = re.match("^.*(?=(\())", search_result.text)
if res:
# ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41929 次 |
| 最近记录: |