I want to debug a site using imacros and Fiddler (I am open to another solutions that can log a traffic and autosave a log). Never done it before.
It is a 1 site that I will run using 5-10 simultaneous firefox profiles.
What I cannot understand is how will I differentiate which log correspond to which firefox profile since they run simultaneously.
VERSION BUILD=11.5.498.2403; Windows 10; iMacros Browser + Firefox
iMacros 8.9.7; Firefox 49.0.2
Related
I work in windows with the program that starts and controls the chrome-based browser.
Fiddler can display all the traffic from that browser, but I want to explore the commands that are sent to that browser to control it (for example open URL, make a post query, etc).
Fiddler doesn't display such commands.
But using ieinspector HttpAnalyzer I can see that the browser is controlled by the chrome devtools at localhost:54909 and websockets ws://localhost/devtools/page/HASH
How can I explore all that information in fiddler?
I was looking for a way to check for changes in a specific URL provided by the user. I wrote a script that I ran at home that can do that successfully using WWW::Mechanize. The thing is, I need to run it in another computer network that has a group policy that blocks all $mech->get($url) requests (it's not firewall problems, I let Perl through), so I thought I'll try and work around this problem by letting Perl control the web browser.
The computers in the network run Google Chrome and IE8 only and I can't install Firefox due to another policy (thought of using WWW::Mechanize::Firefox). I don't want to invoke IE8 in the script because most of the URLs that will be provided will be of websites that don't work well with it, so that leaves me with Chrome only.
Searching for a module that can do that, I only found AnyEvent::Chromi:
which exposes all of the Chrome Extensions API via a websocket connection.
This doesn't work (the policy probably blocks that websocket as well).
Is there another way to work around this problem/control Chrome from within a Perl script?
Is there another way to work around this problem/control Chrome from
within a Perl script?
WWW::Mechanize::Chrome
Like WWW::Mechanize, this module automates web browsing with a Perl object. Fetching and rendering of web pages is delegated to the Chrome (or Chromium) browser by starting an instance of the browser and controlling it with Chrome DevTools.
You can also do this from scratch without using any CPAN modules.
I tested this on Linux (Ubuntu 16.04, Google Chrome version 53) using Unix Domain (UD)
sockets. Unfortunately, it seems Windows does not have UD sockets, but
it should be possible to do same from Windows using named pipes.
First, make sure google-chrome is running in the background. We will
need to create a Chrome App
that will communicate
with a native host through the native messaging
API. The
native host can be any script that reads messages from its STDIN and
returns replies through its STDOUT. I tested both a Python
script and a Perl script.
Now, in order for a standalone Perl script to communicate with the
Chrome browser, it will send request through a UD socket (created by
the native host) to the native host; the native host will then
forward the request to google-chrome through its standard output
pipe. Then the Chrome App (written in JavaScript)
will receive the request. The Chrome App will use the Chrome
JavaScript APIs to get the requested data and return it to the native
host. Finally, the native host forwards the result through the socket to
the Perl script.
As you can see, there are some details required for setting this up, but I can
confirm that it works on my Linux platform. Please let me know if you need more
details.
Since you mentioned IE8, I'm assuming that you're dealing with a Windows system. And since you mentioned that you had considered WWW:Mechanix::Firefox, it sounds like you are not being restricted to just core modules.
Based on that, the only way that I can think of to automate the Chrome broswer would be to use Win32::GuiTest to control the Chrome browser. If you can figure out how to manually drive your testing using only keyboard input (i.e. no mouse), that would make things easier than trying to figure out the mouse emulation to get the cursor to the correct position for various tasks.
I'm not sure if that's necessarily a route that you will like to use or not. It's just the only way that I can think of to accomplish what you want to do with the restrictions that you have to deal with.
In FireFox I load my web application which has a Source Map. The Source Map seems to be loaded correctly, as the Debugger tab shows the original source files.
However, the Console tab contains only links to the compiled code, instead of the Source Map code.
Is a Source mapping done in FireFox Console?
Do I have to enable anything?
Update: I also tried it in chrome and there the console shows the original location of the event, BUT: only the first time after starting chrome AND only, if I first load the page and then open the developer tools. Exactly same behaviour in opera (same engine...)
Update 2:
As of Firefox bug 670002 Web console does still not support source mapping.
In chrome the source mapping works more than once if I directly embed the source mapping instead of using an URL.
For chrome developer tools, the answer was covered in this issue:
https://bugs.chromium.org/p/chromium/issues/detail?id=633549
In some cases, developer tools requested the source map file when no connection was alive anymore. It tried to open a new connection, which failed silently because of an invalid ssl certificate.
You may run into this, when:
You serve using https
You do not have a valid ssl certificate (which may happen often when you just run a quick local node.js https server)
Your https server closes the connection fast or immediately
Especially when your https server sends connection:close in the response headers you may run into this.
The biggest issue is, that this request is not shown in the network tap nor in the console, it is just silent.
i am only start learning GWT by following their tutorial on https://developers.google.com/web-toolkit/doc/2.1/tutorial/create
On that page, when i reach the heading Running the development mode code server (from Eclipse), i copied the generated url http://127.0.0.1:8888/StockWatcher.html?gwt.codesvr=127.0.0.1:9997 to my browser.
It eventually times out, says page not loading...the plugin page did not show up initially, so i manually installed the plugin...but it still times out...
On the screen, it says...
===============================================================================
The connection was reset
The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer's network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web
==============================================================================
Am i missing any configurations etc?
Thanks very much in advance
It still looks like your browser is missing the GWT developer plugin. Try a different browser (preferably Chrome). You can also check the instalation of GWT in Eclipse. Look into Windows/Preferences and under Google/WebToolkit you should see checked GWT SDK. Also you can check if a jetty server runs on port 8888, when you type "netstat -na" on the command line.
I'm trying to automate access to a website that get reports from a Microsoft-IIS/6.0 server, or at least I assume that because that is what is appearing in the HTTP Headers. So if the website connects this server, does it download the file via FTP? Is there any way that I can find out the commands being sent form my browser?
The weird thing about the website is that it uses Crystal Report ActiveX viewer, is that client side, is there any way that I can control the viewer through PERL?
Also, this might be a really dumb question, but does IIS use SQL/MySQL?
Any help is appreciated!
There are a lot of ways to watch the traffic being sent between your browser and the server.
http://www.fiddler2.com/fiddler2/
Firebug for firefox
Chrome has it built in by hitting ctrl+shift+i
http://projects.nikhilk.net/WebDevHelper for IE
F12 in IE will show developer tools (look under network tab)
http://www.wireshark.org/ for watching any network traffic from any application