为了账号安全,请及时绑定邮箱和手机立即绑定

使用名称中带有连字符的作曲家脚本?

使用名称中带有连字符的作曲家脚本?

PHP
慕后森 2022-07-22 18:31:59
我正在尝试使用来自 Github 的以下脚本:https ://github.com/php-webdriver/php-webdriver在“/mnt/hgfs/”中使用 composer 安装很容易,但是在 php 文件中加载类似乎是不可能的如您所见,名称中有一个连字符,我似乎无法以任何方式加载该类。我已经搜索了很多并尝试了很多东西,但同样的问题,我得到:尝试在命名空间中使用连字符并使用我得到PHP 解析错误:语法错误,意外的“-”,在第 3 行的 /mnt/hgfs/test.php 中需要“{”用下划线替换连字符,或者只是删除它我得到:PHP 致命错误:未捕获的错误:在 /mnt/hgfs/test.php:10 中找不到类 'php_webdriver\WebDriver\Remote\DesiredCapabilities'这就是我的代码的外观(/mnt/hgfs/test.php):namespace php_webdriver\WebDriver;require 'vendor/autoload.php';use php_webdriver\WebDriver\Chrome\ChromeOptions;use php_webdriver\WebDriver\Chrome\ChromeDriver;use php_webdriver\WebDriver\Remote\DesiredCapabilities;use php_webdriver\WebDriver\Remote\RemoteWebDriver;$host = 'http://localhost:4444/wd/hub'; // this is the default$capabilities = DesiredCapabilities::htmlUnitWithJS();{    $options = new ChromeOptions();    $options->addArguments(array(        '--disable-extensions',        '--no-sandbox',        '--headless',        '--no-proxy-server'    ));    $capabilities = DesiredCapabilities::chrome();    $capabilities->setCapability(ChromeOptions::CAPABILITY, $options);    $capabilities->setPlatform("Linux");}$driver_spec = RemoteWebDriver::create($host, $capabilities, 600000, 600000);我应该如何加载这个类?
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

这里有几件事是错误的:


namespace php_webdriver\WebDriver; 

您不应该尝试将代码添加到 webdriver 命名空间。对于测试脚本,您不需要自己的命名空间。您可能可以删除此行。


至于:


require 'vendor/autoload.php';

use php_webdriver\WebDriver\Chrome\ChromeOptions;

use php_webdriver\WebDriver\Chrome\ChromeDriver;

use php_webdriver\WebDriver\Remote\DesiredCapabilities;

use php_webdriver\WebDriver\Remote\RemoteWebDriver;

我的印象是你不是 100% 熟悉 PSR-4 / 自动加载的工作原理。命名空间通过 映射到代码目录autoload.php,两者不一定要具有相同的命名结构。


看看composer.jsonwebdriver 项目中的,并注意PSR-4部分。


"Facebook\\WebDriver\\": "lib/"告诉您lib目录中的任何内容都将被视为在Facebook\WebDriver名称空间中。


尝试


require 'vendor/autoload.php';

use Facebook\WebDriver\Chrome\ChromeOptions;

use Facebook\WebDriver\Chrome\ChromeDriver;

use Facebook\WebDriver\Remote\DesiredCapabilities;

use Facebook\WebDriver\Remote\RemoteWebDriver;


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信