Comments (5)
Almost right :). But you need to instantiate the browser, then get a window object before you start calling methods on it. Here is a working example:
error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set('max_execution_time', 120);
require_once "/var/www/html/master/MTS/EnableMTS.php";
$myUrl = "https://whoer.net";
$windowObj = MTS\Factories::getDevices()->getLocalHost()->getBrowser('phantomjs')->getNewWindow($myUrl);
$agentName = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";
$windowObj->setUserAgent($agentName);
Now you can start calling other methods on the windowObj. I.e. if you want a screenshot of the page you have open in the window:
//take screenshot
$screenshotData = $windowObj->screenshot();
//render it:
echo '<img src="data:image/png;base64,' . base64_encode($screenshotData) . '" />';
from mts.
Thank you for quick reply. I edited code 👍
getLocalHost()->getBrowser('phantomjs')->getNewWindow($myUrl); $agentName = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0"; $windowObj->setUserAgent($agentName); $screenshotData = $windowObj->screenshot(); echo ''; $domData = $windowObj->getDom(); echo $domData; ?>Now I got the screenshot taken from whoer.net (website to check current user agent) , but the user agent on that screenshot and from domData is "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1"
It's not working for me... :(
from mts.
Got it. The reason is that setting the url when instantiating a new window will call setURL() before the agent is changed. I should have realized you wanted the agent reflected on the initial connection.
Here is a corrected example:
error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set('max_execution_time', 120);
require_once "/var/www/html/master/MTS/EnableMTS.php";
//do not set URL while instantiating
$windowObj = MTS\Factories::getDevices()->getLocalHost()->getBrowser('phantomjs')->getNewWindow();
//set agent
$agentName = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";
$windowObj->setUserAgent($agentName);
//now set url
$myUrl = "https://whoer.net";
$windowObj->setURL($myUrl);
//window now executes requests with correct agent
$screenshotData = $windowObj->screenshot();
echo '<img src="data:image/png;base64,' . base64_encode($screenshotData) . '" />';
from mts.
Thank you for answer. My problems is now resolved !!!
This is the best source I've ever known.
The last question, can I set time zone and use proxy to connect to $myurl ?
from mts.
Currently not possible using MTS. You would have to modify the options when phantomJS is started.
See: documentation
Specifically the options:
--proxy=address:port
--proxy-type=[http|socks5|none]
Append the command on line 45 of Browser.php
With the proxy settings. I will consider implementing it as a feature later.
from mts.
Related Issues (20)
- Could not determine OS distribution HOT 2
- How to install MTS manually without PHP automation install (MtsSetup.php) ? HOT 7
- Why getElement() show different result? HOT 2
- Regarding Two way verification issue. HOT 5
- error excecuting command HOT 3
- License HOT 4
- Call to a member function getPathAsString() on boolean HOT 6
- Bash::shellStrExecute>> Read data timeout HOT 2
- Don't enforce connection via username:password HOT 8
- Fatal error HOT 12
- How to enable the web driver? HOT 1
- Error when connecting... HOT 4
- Arm board. CentOs on raspberry 2 HOT 1
- Remote powershell doesn't return any data HOT 1
- Class 'MTS\Factories' not found HOT 1
- Execute Script Over SSH via a Jumpbox HOT 15
- Fatal error: Uncaught Exception Could not determine OS version HOT 4
- Powershell not available on localHost HOT 8
- Read registry values from remote PC with credentials (username,password) HOT 1
- Error Not Handled for Request Type: connectByUsername HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mts.