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

Javascript测试:Selenium cookies数据url

通正平
2023-03-14

每当需要Javascript时,我都有一个运行Selenium的Behat测试。如果使用Javascript,我当前的Behat测试工作正常(因此Selenium是禁用的)。

目前,我从Selenium得到的唯一错误反馈是以下声明:

unknown: Failed to set the 'cookie' property on 'Document': Cookies are disabled inside 'data:' URLs.
        (Session info: chrome=48.0.2564.109)
        (Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Linux 4.2.0-16-generic x86_64) (WARNING: The server did not provide any stacktrace information)
      Command duration or timeout: 7 milliseconds
      Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42'
      System info: host: 'ca7a41afbfee', ip: '172.17.0.10', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-16-generic', java.version: '1.8.0_45-internal'
      Driver info: org.openqa.selenium.chrome.ChromeDriver
      Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/tmp/.com.google.Chrome.WWmJvH}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=48.0.2564.109, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
      Session ID: b8a3f435fe337ca77d523d5b72f6235b (WebDriver\Exception\UnknownError)

我在这里做错了什么?有些帖子谈论饼干,但我真的不知道在哪里追加它们。

共有2个答案

皇甫建木
2023-03-14

在添加cookie之前,您需要打开页面:

$capabilities = DesiredCapabilities::chrome();
$host = 'http://localhost:4444/wd/hub'; // this is the default
$this->webDriver = RemoteWebDriver::create($host, $capabilities, 5000);
$this->urnOpen('/');
$cookie = array();
$cookie['name'] = 'NAME';
$cookie['value'] = 'VALUE';
$this->webDriver->manage()->addCookie($cookie);
牟恺
2023-03-14

在页面完全加载之前,无法使用Chrome驱动程序设置cookie。使用selenium等待页面加载,然后设置cookies。

 类似资料:
  • 如果开发的插件需要提供测试数据,建议直接在插件目录添加一个testdata.sql,然后将测试数据的SQL存放在此文件中。 注意testdata.sql需要由用户手动导入,因此此文件中的__PREFIX__不会进行替换。 需要在文档中提醒用户导入测试数据的方法。

  • 数据流测试用于分析程序中的数据流。它是收集有关变量如何在程序中流动数据的过程。它试图获得过程中每个特定点的特定信息。 数据流测试是一组测试策略,用于检查程序的控制流程,以便根据事件的顺序探索变量的顺序。它主要关注分配给变量的值和通过集中在两个点上使用这些值的点的点,可以测试数据流。 数据流测试使用控制流图来检测可能中断数据流的不合逻辑的事物。由于以下原因,在值和变量之间的关联时检测到数据流中的异常

  • 简介 Laravel提供了各种有用的工具,以便更容易地测试数据库驱动的应用程序。 首先, 你可以使用 assertDatabaseHas 辅助函数, 来断言数据库中是否存在与指定条件互相匹配的数据。 例如,如果我们想验证 users 数据表中是否存在 email 值为 sally@example.com的数据, 你可以安装以下方式来测试: public function testDatabase(

  • 我有一个TestNG数据提供程序,里面有很多测试数据。我正在解析一个Excel工作表,所以数据提供者有例如15个测试数据列表。 我不想用所有15个测试数据集运行我的测试,只有一个。是否可以筛选数据集并仅使用该数据集运行测试?例如,让我们用id1行运行测试。这只是一个例子,我将把我的数据存储为测试对象列表。

  • 我写了一个小的学习项目来使用MongoDB。我使用Spring数据获取Mongo存储库。创建RestController并通过Service(另一个类)使用MongoRepository从mongodb检索信息并将其呈现给浏览器是相当容易的。 现在我的问题是:我实际上不想在我存储数据的同一个数据库上运行一些测试。此外,我有一个重要的方法,在此之后,所有数据都将消失。我发现嵌入式mongodb是一种

  • 编写测试代码时,一个较好的办法是把测试的输入数据和期望的结果写在一起组成一个数据表:表中的每条记录都是一个含有输入和期望值的完整测试用例,有时还可以结合像测试名字这样的额外信息来让测试输出更多的信息。 实际测试时简单迭代表中的每条记录,并执行必要的测试。这在练习 13.4 中有具体的应用。 可以抽象为下面的代码段: var tests = []struct{ // Test table