首页 > 解决方案 > 使用 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

但我做不到!我怎么解决这个问题 ?

标签: python-3.xselenium

解决方案


导航到新 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

推荐阅读