我最近升级到了Protractor 5.1.1,在通过browser.manage()设置Cookie时遇到了一些问题.addCookie()
在Selenium-webdriver的版本2和3之间,API已经发生变化,期望一个对象而不是之前的2..6参数。当我对我的代码进行更改以使用该对象时,typescript编译器抱怨说它需要2..6个参数。
老pi:browser.manage().addCookie('cookieName', 'cookieVal');
新api:
browser.manage().addCookie({name:'cookieName', value: 'cookieVal'});
我认为这是因为量角器v5.1.1的package.json中的@ types / selenium-webdriver指向版本2.53.39。同一个package.json引用的实际selenium-webdriver的版本是3.0.1。
这应该是相同的值吗?是否有其他人遇到过这方面的问题?
答案 0 :(得分:2)
是的,这种情况正在发生,因为当时没有写出类型定义。
现在是解决方法:
scene
我们将browser.manage返回的选项对象设置为local cloud = require("objects.Cloud")
local maxScrollRate = 4
local cloud1 = cloud:new( 100, 50, 1 + math.random( maxScrollRate ) )
cloud1.img.x = 200
cloud1.img.y = 200
sceneGroup:insert(cloud1.img)
local cloud2 = cloud:new( 100, 50, 1 + math.random( maxScrollRate ) )
cloud2.img.x = 100
cloud2.img.y = 400
sceneGroup:insert(cloud2.img)
。然后我们可以给它(browser.manage() as any).addCookie({name:'cookieName', value: 'cookieVal'});
方法。
OR
您可以将@ types / selenium-webdriver类型定义升级到版本3。
答案 1 :(得分:0)
我有同样的问题!我知道@ types / selenium-driver现在已更新到3.0.0版。
我没有幸运,但您可以尝试直接安装它(即 npm install --save-dev @ types / selenium-webdriver )并将其添加到您的列表中tsconfig.json文件中的类型(即类型:[" selenium-webdriver" ]。