当前位置: 首页 > 知识库问答 >
问题:

硒点击链接并在新网址上继续-不能在新网站上继续脚本

管杜吟
2023-03-14

我知道如何让它点击链接,但一旦我进入新页面(新URL),我就无法让它在同一个会话中继续脚本。

当我指定新网址时,它会打开一个新窗口,并且不能继续,因为需要继续从上一页插入信息。

如何解决这个问题?

另外,我在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")

上述代码应该没有任何问题。

共有1个答案

甄坚白
2023-03-14

Chrome()创建新的web驱动程序实例,它没有任何访问驱动程序的权限,反之亦然。只需使用现有的驱动程序来导航

driver.get("https://forsikringsguiden.dk/#!/bilforsikring/omdig")
 类似资料:
  • 我的一个朋友最近在网上发布了他的javascript游戏。你首先进入主页,然后点击一个按钮,把你带到游戏中。 当我检查元素时如下所示: 当有人点击这个时,计数器会递增,这样他就知道有多少人玩过了。他这样做只是为了练习,因为他实际上并不期望任何人能上场。 我想给他一个惊喜,让一个剧本不断地点击这个按钮,一遍又一遍地,让他觉得他有1000个剧本。(当我告诉他时,他会喜欢这个恶作剧的;) 有人知道这是否

  • 上一次我使用testcafe时,我已经意识到在这个伟大的框架中缺少的函数。此函数类似于“尽管出现断言,但仍继续执行特定测试的其余部分” 更准确地说,我描述了我缺少此类功能的原因:假设您正在测试类似web表单的web应用程序,在其中输入合同日期。此类合同表格包含许多输入框、下拉菜单、复选框等。 第一个简单的测试是这样的: > 然后,你在所有环境中运行这个测试,一切正常。好的 在下一个webapp版本

  • 跳过当前循环的剩余部分并继续下一次循环。在各种循环中都是有效的。 Continue [, LoopLabel] [AHK_L 59+]:如果指定了,则 LoopLabel 表示此语句所应用的循环;通过标签名或嵌套层级的数值。如果省略或为 1,此语句应用于它所在的最内层循环。LoopLabel 必须为常量,不支持变量和表达式。如果指定标签,则它必须直接指向循环命令。 Continue 的行为如同直接

  • 简介 本章介绍的是Scheme中特有的数据类型——继续(Continuation)。由于其他程序设计语言并没有这种数据类型,因此它难于理解。当下,你并不需要彻底理解清楚,只需要大致了解。 我会讲解广义的继续和简短地介绍Continuation-Passing-Style(CPS),然后再讲解Scheme中的继续。我认为通过这种方式理解继续会比较容易。 广义继续 继续是在返回到顶层(Top leve

  • 我已将 PnP 合作伙伴包的示例部署到 Azure 存储,并创建了两个 Web 作业。一个计划,另一个连续。 我通过UI“创建网站集页面”创建了几个网站集,当我在配置网站集中检查PnPProvisioningJobs库时,作业状态显示为“挂起”。然而,WebJob状态显示为“正在运行”。 JSON 设置文件包含以下设置: 任何想法我如何配置它连续运行,因为现在显然没有这样做。 计划的Web作业有以

  • 本文向大家介绍Go 打破并继续,包括了Go 打破并继续的使用技巧和注意事项,需要的朋友参考一下 示例 像许多其他语言一样,Go也支持打破循环并继续进行下一个迭代: 该break和continue语句还接受一个可选的标签,用于标识外环路与声明的目标: