使用php-webdriver-bindings-0.9.0在selenium中执行javascript
发布时间:2020-12-13 21:48:06 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试在我的selenium测试套件中执行 JavaScript但它没有工作,我没有得到任何错误反馈.它优雅地接受我作为参数输入的任何内容到执行函数并通过测试.以下是我尝试过的组合: class TestingStuff extends PHPUnit_Framework_TestCase {protected function
我正在尝试在我的selenium测试套件中执行
JavaScript但它没有工作,我没有得到任何错误反馈.它优雅地接受我作为参数输入的任何内容到执行函数并通过测试.以下是我尝试过的组合:
class TestingStuff extends PHPUnit_Framework_TestCase { protected function setUp() { $this->webdriver = new WebDriver("localhost",4444); $this->webdriver->connect("firefox"); } protected function tearDown() { $this->webdriver->close(); } public function testSomething() { $this->webdriver->get('http://localhost/testdir/'); // Here is the execute function $this->webdriver->execute('alert','Hello'); $this->webdriver->get('http://127.0.0.1/testdir/'); // Here is the execute function $this->webdriver->execute('alert("Hello")',''); $this->webdriver->get('http://127.0.0.1/testdir/'); // Here is the execute function $this->webdriver->execute('javascript:alert("Hello")',''); $this->webdriver->get('http://localhost/testdir/'); // Here is the execute function $this->webdriver->execute('alert()','Hello'); } } 这是“WebDriver”类的功能: /** Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. * The executed script is assumed to be synchronous and the result of evaluating the script * is returned to the client. * @return Object result of evaluating the script is returned to the client. */ public function execute($script,$script_args) { $request = $this->requestURL . "/execute"; $session = $this->curlInit($request); $args = array('script' => $script,'args' => $script_args); $jsonData = json_encode($args); $this->preparePOST($session,$jsonData); $response = curl_exec($session); return $this->extractValueFromJsonResponse($response); } 解决方法
看一下
https://github.com/scopium/Work/blob/master/php-webdriver-bindings-0.9.0/test/PHPWebdriverTest.php public function testExecute() { $this->webdriver->get(TEST_URL); $result = $this->webdriver->executeScript("return sayHello('unitTest')",array()); $this->assertEquals("hello unitTest !!!",$result); } 这是你想要实现的目标吗? 我正在使用phpunit-selenium并遇到类似的问题: class MyTestClass extends PHPUnit_Extensions_Selenium2TestCase { protected function setUp() { $this->setBrowser('firefox'); $this->setBrowserUrl('http://yourdomain.tld'); } public function testScript() { $this->url('./'); $this->execute(array('script' => "alert('Hello');",'args' => array())); sleep(3); // Just to see the alert() } } (来自https://github.com/sebastianbergmann/phpunit-selenium/issues/160) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |