小编dem*_*123的帖子

Chromedriver 无法打开,因为 Apple 无法检查其是否存在恶意软件

环境:
\n操作系统:Big Sur 11.1
\nHomebrew 3.2.13
\nPython 3.9.7

\n

命令:
\nchromedriver \xe2\x80\x94version

\n

错误 GUI 警报:
\n在此输入图像描述\xef\xbf\xbc

\n

尝试运行 chromedriver 的 .py 文件输出出错:
\nraise WebDriverException(selenium.common.exceptions.WebDriverException: Message: Service /opt/homebrew/bin/chromedriver unexpectedly exited. Status code was: -9

\n
\n

修复方法(1)

\n

如警报中所述,尝试更新 chromedriver:

\n

卸载当前版本:
\nbrew uninstall chromedriver

\n

验证 chromedriver 是否已卸载:
\nbrew info chromedriver

\n

安装最新版本的 chromedriver:
\nbrew install chromedriver

\n

您还可以尝试:
\nbrew reinstall chromedriver

\n

修复方法(2):仍然卡住

\n

如果您仍然遇到该问题,此修复对我有帮助。

\n

确定正在使用哪个 chromedriver,运行:
\nwhich chromedriver …

selenium selenium-chromedriver macos-big-sur

24
推荐指数
2
解决办法
1万
查看次数

您可以在一个浏览器上下文 Playwright Javascript 中运行多个测试吗?

是否可以在一个浏览器窗口中为剧作家/测试运行多个测试?

目前它将点击 browser.close(); 每次测试后,即使他们在同一页面上进行测试,这也会在测试上花费大量额外时间。

test.beforeAll(async ({ browser }) => {
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://example.com');
});

test('nav test', async ({ page }) => {    
  const name = await page.innerText('.navbar__title');  
  expect(name).toBe('Playwright');
});

test('header test', async ({ page }) => {   
  const name = await page.innerText('.navbar__header');  
  expect(name).toBe('Playwright');
});
Run Code Online (Sandbox Code Playgroud)

automated-tests node.js playwright

10
推荐指数
2
解决办法
9226
查看次数

Selenium WebElement.click()与Javascript点击事件

我想知道调用WebElementclick()方法与通过id查找元素和使用JavaScript 触发事件之间的区别是什么.click

为了清楚第一种方法,我称之为WebElement.click()的一个实例:

myWebElement.click();
Run Code Online (Sandbox Code Playgroud)

第二种技术是:

((JavascriptExecutor)driver).executeScript("document.getElementById('myElementID').click()");
Run Code Online (Sandbox Code Playgroud)

我很想知道这两种点击web元素的技术之间的差异,以及每种技术的优点和缺点.

javascript java selenium selenium-webdriver

9
推荐指数
1
解决办法
2万
查看次数

使用Puppeteer禁用检查元素

我有一个初始状态为disabled- 的按钮-

<button type = "submit" class="ant-btn ant-btn-primary ant-btn-lg" disabled>
Run Code Online (Sandbox Code Playgroud)

disabled一旦满足条件,该属性就不存在 - 因此HTML变为

<button type = "submit" class="ant-btn ant-btn-primary ant-btn-lg">
Run Code Online (Sandbox Code Playgroud)

我想检查按钮是否具有属性disabled,但是由于该属性没有值,我无法找到这样做的方法.

例如,如果disabled属性有这样的东西

<button type = "submit" class="ant-btn ant-btn-primary ant-btn-lg" disabled = "disabled">
Run Code Online (Sandbox Code Playgroud)

然后我可以做这样的事情

let button = await page.$('button');
let valueHandle = await input.getProperty('disabled');
assert.equal(await valueHandle.jsonValue(), 'disabled');
Run Code Online (Sandbox Code Playgroud)

但由于属性没有价值,在这种情况下如何处理?

javascript css-selectors puppeteer

9
推荐指数
3
解决办法
4101
查看次数

无法在ubuntu 14.04上安装mvn 3.3.3

我正在使用Ubuntu 14.04.我需要跑mvn 3.3.3.目前,安装的mvn版本为3.0.5.当我进入

sudo apt-get install maven

它说 maven is already the newest version

有没有办法强制安装mvn 3.3.3?

ubuntu maven

7
推荐指数
2
解决办法
6466
查看次数

使用特定的JSON键值对创建数组

假设我有一个像这样的JSON数组

[{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]
Run Code Online (Sandbox Code Playgroud)

我想获得一个值等于的所有names 的数组.websitegoogle

首先,过滤JSON阵列为只包含其中的条目website就是google,我有这样的:

var data_filter = data.filter( element => element.website =="google");
console.log(data_filter);
Run Code Online (Sandbox Code Playgroud)

得出以下结果:

[{"name":"Lenovo Thinkpad 41A4298","website":"google"},
    {"name":"Lenovo Thinkpad 41A2222","website":"google"},
    {"name":"Lenovo Thinkpad 41A424448","website":"google"}]
Run Code Online (Sandbox Code Playgroud)

接下来我需要做什么来获得name一个单独的数组.我试过这样做:

let new_array = [];
  new_array.push(data_filter.body.name)
Run Code Online (Sandbox Code Playgroud)

这给了我一个未定义的错误name.我也尝试过:

new_array.push(data_filter.name)
  new_array.push(data_filter.body[0].name)
Run Code Online (Sandbox Code Playgroud)

但这些方法都不起作用.我在这里错过了什么?

仅供参考 - JSON数据和过滤方法在此SO 帖子中提及- OP和答案.

javascript arrays json

7
推荐指数
1
解决办法
725
查看次数

API数据在控制台中返回Unicode字符

自从过去两天以来,我面临一个相当混乱的问题.我正在开发一个文档管理系统,它使用从SOLR中提取数据的API.数据约为15Mbs,并提取超过4000个文档的记录.API有这种格式的响应 -

{
    "documents": [
        {
            id: 123,
            some_field: "abcd",
            some_other_field: "abcdef"
        },
        {
            id: 124,
            some_field: "abcd1",
            some_other_field: "abcdef1"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在浏览器中一切正常.如果我在Chrome或Firefox浏览器中点击端点,它会给我正确的输出,我能够看到JSON输出.

但是,如果我尝试使用Java或JS代码访问相同的API端点 - 响应代码为200,但控制台(终端或Eclipse)中\u0089 \u0078 U+0080的输出显示类似的unicode字符- 所有输出都以这种方式出现,并且因为有API提取了大约4000多条记录,控制台有点填充所有这些unicode字符.

我在浏览器和代码之间看到的唯一区别是,在浏览器中我可以看到Content-Encoding : gzip,而我无法从我编写的代码中找到此标头.例如 - 在JS代码中,通过Chakram框架,我可以检查

expect(response).to.be.encoded.with.gzip

这里提到的.但是,这会返回失败说明expected undefined to match gzip

我在这里错过了什么?这是与编码/解码有关的东西还是完全不同的东西?

编辑1:NetworkChrome标签中显示的响应标题:

cache-control: max-age=0, private, must-revalidate, max-age=315360000
content-encoding: gzip
content-type: application/json; charset=utf-8
date: Tue, 22 May 2018 06:07:26 GMT
etag: "a07eb7c1eef4ab97699afc8d61fb9c5d"
expires: Fri, 19 May 2028 06:07:26 GMT
p3p: …
Run Code Online (Sandbox Code Playgroud)

javascript api encoding web-api-testing

7
推荐指数
1
解决办法
431
查看次数

如何通过 Puppeteer 访问用于 dockerized Chromium 启动的远程调试页面?

当 Chromium 成功启动时,它的 Debugging WebSocket URL 应该类似于ws://127.0.0.1:9222/devtools/browser/ec261e61-0e52-4016-a5d7-d541e82ecb0a.

127.0.0.1:9222应该能够通过 Chrome 浏览以检查无头 Chromium。但是,在对我的应用程序进行 dockerize 后,我无法通过 Chrome 访问远程调试器 URL。

由 Puppeteer 启动铬的launchOption

{
  "args": [
    "--remote-debugging-port=9222",
    "--window-size=1920,1080",
    "--mute-audio",
    "--disable-notifications",
    "--force-device-scale-factor=0.8",
    "--no-sandbox",
    "--disable-setuid-sandbox"
  ],
  "defaultViewport": {
    "height": 1080,
    "width": 1920
  },
  "headless": true
}
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM node:10.16.3-slim

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
    && apt-get update \
    && apt-get install -y google-chrome-unstable …
Run Code Online (Sandbox Code Playgroud)

google-chrome docker puppeteer

6
推荐指数
2
解决办法
2987
查看次数

Jenkins构建因修订错误而失败

我试图在简单的Python测试中运行Jenkins.这是我第一次,所以我按照本教程中提到的步骤进行操作:链接

触发构建后,我的Jenkins控制台输出显示失败,因为找不到任何修订.

这是控制台输出:

Started by user anonymous
Building in workspace    /usr/share/tomcat7/.jenkins/jobs/PythonUIProject/workspace
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url /home/rahul/PycharmProjects/.git/ # timeout=10
Fetching upstream changes from /home/rahul/PycharmProjects/.git/
> git --version # timeout=10
> git -c core.askpass=true fetch --tags --progress /home/rahul/PycharmProjects/.git/ +refs/heads/*:refs/remotes/origin/*


Seen 0 remote branches
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

我的Git安装文件夹是:home/rahul/PycharmProjects/,我的系统是Ubuntu 14.04 LTS. …

python git jenkins

5
推荐指数
1
解决办法
1010
查看次数

单击量角器中的上传按钮后如何关闭文件上传对话框

我想在量角器中上传图像文件。问题是我无法在"input[type = "file"]"不点击上传按钮的情况下获取元素。

当我点击上传按钮时,文件上传对话框弹出。

我试过了

browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); 但它不起作用。

这就是我正在做的:

var image = '../images/image1.png';
var absPathImg = path.resolve(__dirname, image);
element(by.id('uploadImage')).click();
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
element(by.css('input[type=file]')).sendKeys(absPathImg);
element(by.id('upload')).click();
Run Code Online (Sandbox Code Playgroud)

如何关闭该文件上传对话框以上传图像?

selenium-webdriver angularjs-e2e protractor e2e-testing

5
推荐指数
1
解决办法
4906
查看次数