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

python/selenium/phantomjs-在执行之间保留的数据

姜志行
2023-03-14

我在学硒。我使用的是Python 2.7。幻影JS-2.1.1。

背景-脚本试图将数据输入控件。该脚本能够捕获控件。但是,较早执行的数据将被保留。

截图

import time,traceback
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

COMPANY_NAME = 'AHXJ OF KCH'
FIRST_NAME = 'Bill'
LAST_NAME = 'CLINTON'
EMAIL = 'bill.clinton@whitehouse.com'

driver = webdriver.PhantomJS()
driver.delete_all_cookies()
driver.implicitly_wait(10)
driver.set_window_size(1120, 550)
try:
    driver.get("https://username:password@url/")
    select_state = Select(driver.find_element_by_id('state_abbrev'))
    select_state.select_by_visible_text('Arizona')
    time.sleep(5)
    select_business_segment =           Select(driver.find_element_by_id('business_segment_id'))
    select_business_segment.select_by_visible_text('IT/Technology')
    time.sleep(5)
    select_business_type = Select(driver.find_element_by_id('business_type_id'))
    select_business_type.select_by_visible_text('Application Development')
    driver.save_screenshot(COMPANY_NAME+ '_home_page_screenshot.png')
    driver.find_element_by_xpath('//*[@id="chubb_commercial_entry_form"]/div/button').click()
    time.sleep(10)
    #wait = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, 'product_codes__bop')))
    driver.find_element_by_xpath('//*[@id="field_for_product_codes__bop"]/label').click()
    comp_name = driver.find_element_by_id('business_name')
    comp_name.clear()
    comp_name.send_keys(COMPANY_NAME)
    email = driver.find_element_by_id('email')
    email.clear()
    email.send_keys(EMAIL)
    driver.save_screenshot(COMPANY_NAME+ '_business_info_screenshot.png')
    driver.find_element_by_xpath('//*[@id="commercial-app"]/div/div[2]/div[2]/div/div[2]/form/div[1]/div/div/button').click()
    time.sleep(10)
   ...
except Exception,e:
    print e
    driver.save_screenshot('error_screenshot.png')
    traceback.print_exc()
finally:
    driver.quit()
    null

共有1个答案

和谦
2023-03-14

该站点可能正在将用户输入缓存在cookie或本地存储中。网站通常会这样做,以便允许您在页面之间来回导航,或者稍后返回到表单,而不必再次填写所有细节。例如,这就是站点如何在React中保持状态。

您可以使用浏览器的开发工具来查找。例如,以下是在Chrome中如何做到这一点。该图像显示了可能正在使用的各种类型的存储。

如果您想在没有任何先前输入的情况下启动每个测试,则需要删除它。如果站点存储cookies,而您没有任何其他要保存的cookies,则可以删除所有cookies:

driver.delete_all_cookies()
driver.execute_script('window.localStorage.clear();')
 类似资料:
  • 问题内容: 对于一个学校项目,我正在用Python制作子手游戏。现在,我的代码从字典中选择一个单词,如下所示: 现在,必须在运行之前在代码中设置单词列表,但是我添加了在运行时将单词添加到列表中的功能: 但是,一旦退出代码,显然不会保存添加的单词,因此,我将不得不手动将所有单词添加到列表中,或者每次代码启动后都将一堆单词添加到列表中。所以我想知道是否有一种简单的方法可以在代码完成后保存变量,以便Wo

  • 我们将设置为 1 小时,如下所示(以前设置为 72H) 使用以下Kafka命令行工具,我们将kafka 设置为< code>1H。我们的目标是清除topic - 中比1H旧的数据,因此我们使用了以下命令: 此外 两个命令都运行无误。 但问题是关于Kafka的数据,它比1H更老,仍然存在! 实际上,没有从主题分区中删除任何数据。我们有HDP Kafka集群版本1.0x和ambari 我们不明白为什么

  • 我试图在我的php脚本上执行这个命令。shell_exec(“phantomjs C:\sample\sample.js”); 但它返回null,仅仅几秒钟后。我预计这将需要很长时间,因为我已经在cmd上测试了这个命令,并且它正在工作。 我正在使用ajax调用执行此脚本的控制器,以便它可以在后台运行。问题是php端调用exec/shell\u exec命令。谁能启发我? 这是我的密码: 看法php

  • 问题内容: 我使用以下代码在C#中实例化PhantomJSDriver: 并用以下方法清理它: 进程应该退出还是留在内存中?如果应该保留在Windows 7任务管理器中可见的内存中,我可以通过编程方式将其杀死吗?我是不是该? 问题答案: 直接回答,不应该用于清理实例。为了进行适当的清理,我们必须使用。 :我认为已弃用。 :用于关闭当前页面或具有焦点的浏览器(如果它是唯一的页面/选项卡)。 :它用于

  • 问题内容: 是否可以在PHP中运行Python脚本并相互传递变量? 我有一堂课,以某种全球性的方式抓取网站获取数据。我想使其变得更加具体,并且已经具有针对多个网站的pythons脚本。 我正在寻找一种将这些内容纳入班级的方法。 两者之间安全可靠的数据传输是否可能?如果是这样的话,要取得这样的成就有多困难? 问题答案: 通常,您可以通过使用通用语言格式并使用和来传递数据来在语言之间进行通信。 PHP

  • 问题内容: 分页时有什么方法可以保留我的GET参数。 我的问题是我有几个不同的网址,即 我应该如何在分页类中创建指向页面上具有不同页码的页面的链接,但仍然保留网址的其他部分? 问题答案: 简而言之,您只需解析URL,然后在最后添加参数,或者如果参数已经存在,则将其替换。 此示例代码需要用于和的PHP HTTP模块 。后者可以替换为第一个,如果没有安装模块,则可以使用PHP用户空间实现。 另一种选择