我正在使用 Selenium 2.53.6 和 Python 来测试表单提交。发布表单后,会向first_name.last_name@mailinator.com
发送确认邮件。
Selenium然后导航到网址https://www.mailinator.com/inbox2.jsp?public_to=first_name.last_name#/#public_maildirdiv
,该网址是first_name.last_name
标识的用户的收件箱。
加载页面时,会点击与确认邮件对应的div。此单击创建一个加载邮件的ajax请求。
现在我希望Selenium点击链接激活电子邮件:
driver.find_element_by_xpath("//a[@id='activationLink']").click()
问题是,由于通过AJAX生成的邮件,Selenium在任何时候都不会收到与AJAX成功后生成的DOM相对应的HTML。
事实上, Selenium会保留收件箱的HTML,但永远无法获得邮件HTML 。
我的问题是:是否可以在AJAX调用后刷新HTML,以便Selenium可以找到
<a id="activationLink">
?
注意:我已经尝试WebDriverWait(driver, 120).until(EC.visibility_of_element_located((By.ID, "activationLink")))
或者这样的技巧,但是它不会改变任何东西,因为Selenium 不刷新它指向的HTML