我正在使用以下代码检查Facebook消息中是否有新消息:
def waitForNextMessage():
messageList=driver.find_elements_by_css_selector('.null')
message=''
while True:
driver.implicitly_wait(10)
element = driver.find_elements_by_css_selector('.null')
if not(element == messageList):
message=element[-1].find_elements_by_css_selector("*")[0].text
print(message)
break
基本上,在开始时,我列出了类.null
(消息框)的所有元素,然后在一个无限循环中再次创建该列表并检查它是否不同。如果是,则表示新消息已到达。在
有没有更好的方法,希望没有无限循环?在
可以使用explicit wait等待messages
null
元素消失这将等待60秒,直到
messageList
中的第二项从DOM中消失,即您有了新消息。如果有新消息,代码将继续打印消息,否则将出现TimeoutException
。在要在一定时间内运行此程序,您可以设置计时器
^{pr2}$要在其他测试之外连续运行此测试,可以在线程中运行
waitForNextMessage()
。在expected_conditions.staleness_of()
是一个不附加到DOM的元素的期望值。您可以找到更多期望的条件here相关问题 更多 >
编程相关推荐