Print text with clickable link in console or terminal in Perl [duplicate] - perl

How do I display a hyperlink (weblink) in hudson/jenkins build output console?
What I'm trying to achieve is, during a hudson/jenkins build based on certain condition, I would like to display a hyperlink.
When a user click on that link, it should open a new browser window and show the page.
Is there a plugin to do this? Any suggestions please?

When using a (system) groovy script or Jenkins job pipeline (without sandbox) you may want to try e.g.:
import hudson.console.ModelHyperlinkNote
println hudson.console.ModelHyperlinkNote.encodeTo('http://example.com', 'example')
Please find the full API of hudson.console.ModelHyperlinkNote here:
http://javadoc.jenkins-ci.org/hudson/console/ModelHyperlinkNote.html

If you enter, for example:
echo 'http://example.com'
in a Build step Execute shell → Command the address will be hyperlinked in the Console Output, though not with target="_blank". But middle-clicking on it opens it in a new tab or window – depending on your browser preferences.

Related

write a vscode extension visual test

I created a VSCode Extension and then I need to write some tests.
I am using Mocha and chai.
I wrote a few tests and I don't have any issue with that part. My problem is with the below scenario:
I have a button, when I press that button, an input box will appear and then I need to key in a value in the input box and press the okay button.
Can you help me with how I can simulate this scenario by a test? should simulate press the first button by calling the Command palette but how to key in value in the input box?
** Please take note that I already wrote the function test, but the user wants to test the UI also.
can you help me in finding an example related to my problem?
There is something like vscode-extension-tester which lets you test the GUI very comfortable. All information you can find on its github main page:
https://github.com/redhat-developer/vscode-extension-tester/wiki

How to emulate a "Paste" in Selenium IDE add-on for Firefox?

With the help of the Selenium IDE add-on for Firefox, I'm trying to publish a post on Facebook that will include a link, the post should also contain the usual 'link preview' (image and/or description text) scraped from the website I'm sharing.
For this purpose I played around with the following commands to no avail: "type" ; "typeKeys" ; "SendKeys"... the result was actually expected because these commands mimic typing, and if you manually write a link (by typing it) while trying to publish a post on Facebook - the "link preview" (image and/or description) won't be loaded. I also tried to emulate pressing "ctrl + [a/c/v]" in 3 separate commands as a workaround after the link as a text was written in the 'update your status' field, but no luck with those. See the visual examples below:
Selenium IDE contains:
Store | https://9gag.com/ | link
[[bunch of irrelevant commands in-between]]
typeKeys | class=_1mf _1mj | ${link}
Result:
Screenshot 1 - imgur
If you publish the post this way, it'll end up like a plain text. Not a valid share. The thing I'm trying to achieve with Selenium IDE is what's shown on the screenshot below. You can achieve it by copying some absolute URL and pasting it (ctrl + v) inside the 'update your status' window on Facebook.
Result:
Screenshot 2- imgur
Important: Workarounds are welcome as always, but here's what's not welcome as a workaround from other off-topic non-Selenium related reasons:
Using this sharing form: facebook.com/sharer/sharer.php?u=[absolute URL you want to share]
Using the mobile/touch version of Facebook
Thank you in advance for your time, and for the potential solution.
You could try using a space or enter at the end of the URL.

Silent printing on clients printer for a hospital front desk ADF project

I am working on a Hospital front desk ADF project, here I need to generate visit slips these dont require print preview.I want to get to print the slips without any print dialogs nor do I want a popup window. I tried lot of stuff found on the net but nothing solid has come up..
Tried this.print on the Jasper report, tried the same through Java but I am getting dialog.
I am working on an intranet so the security aspect is out of the discussion so how so I make this work?
This is a suggestion rather than an answer, but I can't write comments before I get 50 points of reputation (thank you for the warm welcome, StackOverflow!) - maybe one of these will help:
1) Printing an html file using java without showing print dialog to the user
2) How would I suppress the print dialog in this example?
I was able to perform the silent print, I used a popup window to call a servlet which generated the required visit slip and displayd the same on the pop window. For the silent print I used
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:this.getPrintParams().constants.interactionLevel.silent});this.close();");
I had to make a couple of changes to IE, I added my url to the trusted site option in IE. I enabled js in acrobat and also pointed acrobat to the trusted sites in IE. This resolved silent print but am stuck with another issue..
I am not being able to close the window once print is done.. I tried this..
"var win = window.open('PrintPopUp.jsf','_blank',\"height=300,width=200,scrollbars=no," +
"status=no, resizable=no, screenx=0, screeny=0\");win.onclick=function(){setTimeout(function(){win.close();\n},9000);}
But its not working in IE 11.. any suggestions?
Well I found out a way to do this..
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"var pp = this.getPrintParams();pp.interactive=pp.constants.interactionLevel.silent;pp.NumCopies=1; this.disclosed= true ;this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:pp});");
This adds pdf javascript to the generated pdf..
Once the pdf is displayed on the popup page it performs the silent print.. Hope this helps someone in the future..

Handling pop ups using selenium with perl

I want a solution for the following scenario:
In a page I am uploading an xml and while clicking on the upload button I am going to recieve an pop up for confirmation (I am able to detect this), after this again I am recieving an pop up which I am not able to detect (The page is still getting loaded in the browser ). Kindly help me to sort this out .
I have tried with many solutions for this like: get window ids,titles .
Thanks
You can you use -
$sel->get_confirmation()
This retrieves the message of a JavaScript confirmation dialog generated duringthe previous action. By default, the confirm function will return true, having the same effectas manually clicking OK. This can be changed by prior execution of thechooseCancelOnNextConfirmation command. If an confirmation is generatedbut you do not get/verify it, the next Selenium action will fail.
NOTE: under Selenium, JavaScript confirmations will NOT pop up a visibledialog.
NOTE: Selenium does NOT support JavaScript confirmations that aregenerated in a page's onload() event handler. In this case a visibledialog WILL be generated and Selenium will hang until you manually clickOK.
Returns the message of the most recent JavaScript confirmation dialog.
You should always refer to WWW::Selenium - Perl Client while working with perl and RC.
I have found what is the problem #amey ...I am tring to upload an file which is not actually not permitted due to some security issues with firefox... There was actually an work around for this
http://cakebaker.42dh.com/2006/03/29/file-upload-with-selenium/
.....Which will not work with latest Selenium RC with Firefox since firefox have removed the support for enablePrivilege
https://support.mozilla.org/en-US/questions/944433.
So it is a mandate to shift to WEBDRIVER it seems.............
http://git.erp5.org/gitweb/erp5.git/commitdiff/06898bbfae4f238b7e79ce05048646529216064e
Thanks for your support....
my solution was using the function:
$driver->execute_script("Events.invokeEvent('UserDetailPage:UserDetailScreen:UserDetailToolbarButtonSet:UserDetailToolbarButtons_DeleteUserButton_act', true);");
analyzing what the javascript code does when the Accept button was pressed. and executing that code in the function.

Can't see dynamically loaded code in Chrome Developer Tools 22

When I dynamically load a snippet of html containing javascript via AJAX, I cannot see that content in the source tab in the developer tools window in Chrome 22.0.1229.94. Tellingly, I went here
https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic
This page shows an example developer tools window which is out of date. There is a button on the page to load a dynamic script and it does not show up in the source tab when you do.
As a work-around, I have found that adding
debugger;
to the script and reloading it will cause it to pause in the dynamically loaded code, but unfortunately, all the line numbers are greyed out and you can't set any breakpoints within the debugger.
Am I missing something here or what?
Thanks,
Rob
When you use a library or javascript code that you have loaded it dynamically, you can use the phrase
//# sourceURL=foo.js
at the beginning of your javascript code that foo.js is the name that will be assigned it. debugger will show it with that name.
This is true in chrome, and I think in firebug too.
In this case you can place a breakpoint in the dynamically loaded javascript code.
Possible duplicate of:
Is possible to debug dynamic loading JavaScript by some debugger like WebKit, FireBug or IE8 Developer Tool?
Don't know if this works or not in chrome (This definitely doesn't work for me now, may be in the past).
//# sourceURL=foo.js
Working Solution
For your dynamically loaded script via ajax to appear in your chrome source tool, you need to add the following line at the start or end (I prefer) location of your script file:
//# sourceURL=foo.js
And your script with name foo.js will appear at the left pane of source tab under (no domain) dropdown
->localhost
-- source/src
->(no domain)
-- foo.js
Alternatively you can add the below line in your script anywhere between the scripts.
debugger;
In chrome, you can use " debugger; " statement to break at a statement when debugger panel is open. Chrome will simply ignore this if the debugger panel is closed.
This will help stop your script in debugging mode and you will see your script in source (debugging) panel with name like VM****.
Hope this helps.
You can use //# sourceURL. Chrome doesn't seem to be supporting //# sourceURL for inline scripts. However, it does work on eval expressions. This article gives more details about naming eval blocks and naming of any anonymous functions in your code.
Instead of using eval, you can try embedding a script tag or JSONP may be.
Varunkumar Nagarajan
for me it happened on nodejs project.
i restarted server and open in new tab my app and tada!..
Alternatively, to fix this problem you can open developer tool in a seprate window by clicking the icon. Now reload your script, and it will shown in script tab as expected. I know this is not a solution but a work arround.