请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

找到str_info后触发click()事件,那之后的for循环会不会受到影响报错?

请问老师
while t:
for element in list_element:
title_name = element.find_element_by_tag_name(‘p’).text
if title_name in str_info:
element.click()
t = False
self.driver.execute_script(js)
time.sleep(3)
这个for循环在找到str_info后不会break跳出,会不会出现找到str_info之后进行element.click()跳转到新的页面,但是for循环还在继续,在下一次执行title_name = element.find_element_by_tag_name(‘p’).text的时候会不会找不到元素从而报错?或者找的是另一个页面的title_name?

正在回答 回答被采纳积分+3

1回答

Mushishi 2020-03-11 23:36:04

不会,程序执行到那里已经跳出了,不管你到那里了都已经终止执行下面得循环

0 回复 有任何疑惑可以回复我~
  • 提问者 慕设计4210699 #1
    我的理解是执行到if条件语句,但是while不会立即结束,还会等到整个for循环全部遍历一遍才会跳出while循环;如果在第一次for循环就走到if判断,那么从第二次执行for循环开始就是冗余
    回复 有任何疑惑可以回复我~ 2020-03-12 17:19:38
  • 提问者 慕设计4210699 #2
    老师,还有个问题要请教一下,链接到新的页面是不是selenium焦点还是聚焦在老的页面上,需要switch_to才可以切换到新的窗口?
    回复 有任何疑惑可以回复我~ 2020-03-12 17:25:58
  • Mushishi 回复 提问者 慕设计4210699 #3
    你判断有了肯定break 啊。就继续下面的执行代码。你如果打开了新得窗口你切换一下窗口就行,但是你如果重新find的时候是最新窗口再最前面获取到了焦点会定位到
    回复 有任何疑惑可以回复我~ 2020-03-14 11:54:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信