def ElementOperate(driver, elem_name, this_op_dict, dynamic_data_dict=dict(), no_print=False):
wait_time = 20
elem = WebDriverWait(driver, 20).until(lambda driver : driver.find_element_by_xpath(xpath)) # 在这行设置条件断点 elem_name = 'xxx' 报错
使用的是 pycharm
elem = WebDriverWait(driver, 20).until(lambda driver : driver.find_element_by_xpath(xpath)) # 在这行设置条件断点 elem_name = 'xxx' 报错
错误信息:
Connected to pydev debugger (build 182.4323.49)
Error while evaluating expression: elem_name == 'search_result_item'
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.3\helpers\pydev_pydevd_bundle\pydevd_frame.py", line 43, in handle_breakpoint_condition
return eval(condition, new_frame.f_globals, new_frame.f_locals)
File "<string>", line 1, in <module></module></string>
NameError: name 'elem_name' is not defined
Backend Qt5Agg is interactive backend. Turning interactive mode on.
-
排除几个因素, 这个错误应该是在 pycharm 的 debug 预处理类似的时候出现的问题, 问题是在程序运行开始之前发生的
-
如果把: elem = WebDriverWait(driver, 20).until(lambda driver : driver.find_element_by_xpath(xpath)) 换成一个简单的 print('xxx')则问题不会出现.
-
把: elem = WebDriverWait(driver, 20).until(lambda driver : driver.find_element_by_xpath(xpath)) 换成: elem = WebDriverWait(driver, 20)问题也不会出现。。。
请问这个是什么问题?有哪位高手了解这个 pycharm 调试机制是什么? 如何解释这个错误?