python - Selenium 单击链接并在新 URL 上继续 - 无法在新站点上继续脚本
问题描述
我知道如何让它点击一个链接,但是一旦我进入新页面(新 URL),我就不能让它在同一个会话中继续脚本。
当我指定新的 URL 时,它会打开一个新窗口,并且无法继续,因为需要从上一页插入的信息才能继续。
如何解决这个问题?
PS。我在 python 工作
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
import time
chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
# enable browser logging
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Chrome(desired_capabilities = d, options=chrome_options)
driver.fullscreen_window()
#URL
driver.get("https://forsikringsguiden.dk/#!/bilforsikring/manuel")
#remove cookie bar
driver.find_element_by_id('cookieBarAccept').click()
#car name
maerke = driver.find_element_by_xpath('//*[@id="s2id_carSelectedMake"]/a').click()
driver.find_element_by_xpath('//*[@id="s2id_autogen1_search"]').send_keys("Hyundai")
driver.minimize_window()
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="select2-drop"]').click()
#model
model = driver.find_element_by_xpath('//*[@id="s2id_autogen2"]').click()
driver.find_element_by_xpath('//*[@id="s2id_autogen3_search"]').send_keys("i30")
driver.minimize_window()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="select2-drop"]').click()
#scrolling down
driver.execute_script("scrollBy(0,250)")
#year
aargang = driver.find_element_by_xpath('//*[@id="s2id_autogen4"]/a').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="s2id_autogen5_search"]').send_keys("2009")
driver.minimize_window()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="select2-drop"]').click()
#engine size
driver.execute_script("scrollBy(0,250)")
motor_str = driver.find_element_by_xpath('//*[@id="s2id_autogen6"]/a').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="s2id_autogen7_search"]').send_keys("1,6")
driver.minimize_window()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="select2-drop"]').click()
#engine variant
variant = driver.find_element_by_xpath('//*[@id="s2id_autogen8"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="s2id_autogen9_search"]').send_keys("1,6 CRDi 116HK 5d")
driver.minimize_window()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="select2-drop"]').click()
#scrolling down
driver.execute_script("scrollBy(0,250)")
#clicks on link
godkend_oplysninger = driver.find_element_by_xpath('//*[@id="content"]/div[4]/form/div[6]/div/button').click()
#Continue on new URL
about_you_page = webdriver.Chrome(desired_capabilities = d, options=chrome_options)
about_you_page.get("https://forsikringsguiden.dk/#!/bilforsikring/omdig")
#age
#Fills out first field - "Din Alder"
about_you_page.find_element_by_xpath('//*[@id="content"]/div/div[2]/div[2]/form/div[1]/div[1]/div/input').click().send_keys("50")
上面的代码应该没有任何问题。
解决方案
about_you_page = webdriver.Chrome()
创建新webdriver
实例,它没有任何访问权限,driver
反之亦然。只需使用现有driver
的导航
driver.get("https://forsikringsguiden.dk/#!/bilforsikring/omdig")
推荐阅读
- sql - SQL 转换问题:比较 VarChar 和 money 的选定部分
- flutter - Flutter Google Calendar API - clientViaServiceAccount 没有响应
- python - 服务器到服务器 Websocket 通信
- xml - XSL 文件未正确链接到 XML 文件
- python - 重塑锯齿状数组并用零填充
- robotframework - 如何在另一个用户定义的关键字中引用机器人框架用户定义的关键字
- python - 如何裁剪面部及其部分?
- javascript - 在同一页面中多次使用相同的 LitElement
- python - 如何写 np.where 变量等于列表中的任何一个,做点什么?
- c# - C# 无法从方法返回错误消息