python-3.x - 使用 Python 进入新 URL 后的 Selenium 元素搜索
问题描述
我有一个页面example.com/user
有两个字段名称和电子邮件。发送表格后,它进入example.com/preview
预览页面,我需要提交来自。
我写了下面的代码
driver = webdriver.Firefox()
driver.get("http://example.com/user.php")
old_url = driver.current_url;
print(old_url);
print("===============")
email = driver.find_element_by_name("mail")
name = driver.find_element_by_name("name")
email.send_keys("example@mail.com")
name.send_keys("Jone")
form = driver.find_element_by_xpath("//form[1]")
form.submit()
print("=====From submited====")
driver.implicitly_wait(40)
new_url = driver.current_url
print(new_url) **#still printing old URL**
try:
element=driver.find_element_by_xpath("//input[@type='submit']")
except NoSuchElementException:
print("No element found")
driver.save_screenshot('sc.png')
我正在尝试获取要提交的预览页面表单。但我无法获取预览页面表单。所以在这里我试图给出一个条件
if(old_url !=current_url)
then
element=driver.find_element_by_xpath("//input[@type='submit']") #form find in preview page
但我做不到!我怎么解决这个问题 ?
解决方案
导航到新 URL 后,尝试如下使用ExplicitWait继续执行代码:
from selenium.webdriver.support.ui import WebDriverWait
...
form.submit()
WebDriverWait(driver, 10).until(lambda driver: driver.current_url != old_url)
new_url = driver.current_url
推荐阅读
- c++ - 如何使用 for 循环在 C++ 上制作反向半金字塔图案
- swift - 为什么我无法在 SwiftUI 中的 View 结构内收到有关观察者类的通知?
- video.js - 播放 HLS 视频会在 video.js 播放器中引发错误
- rust - 如何解决“创建一个仍在使用时释放的临时变量”?
- html - 根据文本的子级,子级和父级之间的额外 1px 空间
- sql - 错误 ORA-00933:SQL 命令未正确结束 | 甲骨文
- react-select - 有没有办法自动显示 React-Select 的可用选项
- arrays - ngrx 中的 Observable 数组为空
- python - 如何让程序“读取”并复制文本文件的内容?
- elasticsearch - ElasticSearch BulkShardRequest 由于 org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor 而失败