Error accessing Birthday variable using Watir during gmail sign-up - ruby

I am trying to create the gmail account through watir. As part of it while I am trying to select the birthday using div element I am unable to do.
I tried with the below one:
#ie.div(:text,'May').click
My system configurations:
IE-8
Windows-7

I've always disliked seeing the answers on here that say 'Why are you doing this?" or "Why would you want to do this?". So I'll just say "Don't do this!". I'm sure whatever issue you are facing can be resolved without automating the creation of gmail account.
If all you need is a unique gmail address then see the link below:
http://www.codestore.net/store.nsf/unid/BLOG-20111201-0411
Another option is https://mailinator.com/

As #titusfortner indicates, that element cannot be selected/clicked because it is not visible. Using watir-webdriver, this snippet makes the dropdown menu visible so its options can be selected:
b.div(title: "Birthday").when_present.click
b.div(text: "May").when_present.click
That being said, there are two other (read: larger) issues:
You won't be able to script your way past the captcha.
Google doesn't want you doing this. That's why the captcha is there, and they'll eventually block your IP if you consistently automate/script against them.

You can't click on the text of something that is not visible on the page. You first need to open the drop-down:
browser.span(id: 'BirthMonth').click
browser.div(text: 'May').click

b.element(:css, '#BirthMonth > div').click
b.element(:text, 'May').click
It works with Chrome and with Firefox also but not perfect

Related

Is it possible to get another person's UI in Google Apps Script?

In Google Apps Script when you use the property: DocumentApp.getUi(), it gets the UI of the person who is using it. If you used DocumentApp.getUi().alert(), then it would send an alert to the person who is using the script. I am wondering if there is maybe a way to alert another person's UI in Google Apps Script and not the person who is using the script. Here is a sample of my code:
DocumentApp.getActiveDocument()
.removeViewer(userName.getResponseText())
.removeEditor(userName.getResponseText());
DocumentApp.getUi()
.alert("Your access is being removed.")
Now it would be wonderful and imagine all the possibilities if that were possible! Someone please help!
It is not possible to access the UI of any browser except the one which invoked the function. This is also why time driven triggers cannot display UI modals (they are executing nonlocally).

GCloud API Key - "API restriction" tab disappeared

I'm having some trouble with the GCP console, hopefully someone can point me in the right direction.
A couple of days ago I generated some API Keys and was able to restrict their validity scope by target API. The form looked like this, and I was able to restrict keys to apply on my GAE private APIs only:
whereas today the righthand side tab has disappeared on me and I can only apply "Application restrictions" (IP range, referrer, etc..) and I can see merely the following menu.
I was and still am the owner of the project, and I'm not aware of any change in roles/project config/etc.. (although I can't 100% rule them out)
There is next to zero documentation about the mysterious "API restrictions" tab. Hope someone can help.
Many thanks in advance
F
This feature has been removed temporarly because was causing issues with the Google Maps API.
API already created making use of these restriction will not work and the workaround is to remove them and recreate them with no restriction.
https://issuetracker.google.com/issues/69715011
Please star the bug to add your vote and subscribe to notifications from Google. Hopefully they will fix the issue soon.

Google Tag Manager isn't tracking mobile click to calls

I am trying to track clicks on the phone number on the website. After I set up the trigger using following settings:
Trigger Type: all elements;
Page URL: contains "tel:" ;
Click Text: contains "13";
With these settings, the trigger is firing correctly on the desktop but isn't working on mobile.
I tried to use only "Page URL"/"Text Only"/"Form Text"/"Form contains" as conditions for the trigger to fire, but all attempts are unsuccessful. I also tried to use "Just Links" as a trigger type but it's not helping.
I also tested the URL in different mobile browsers (chrome/safari) and emulator. With an emulator, the tag is firing correctly but it's not working on the
Please have a look at the preview to see the page and tracking I am talking about:
https://www.googletagmanager.com/start_preview/gtm?uiv2&id=GTM-T92J432&gtm_auth=MmNY2ZtOefQOp1Kce4yUFQ&gtm_preview=env-5&gtm_debug=x&url=https://lp.acfc.com.au/good-credit
I appreciate your advice on what is the problem and how it can be fixed.
Thanks!
Kirill
Actually, better way of doing this to set generic trigger in GTM, then you will be able to track any phones on your website:
1) Enable built-in variable Click Element (if you already have it, you can skip this step)
2) Create trigger, which will fire for all links which have tel:***** (it can be any phone).
CSS selector on the screenshot is a[href*="tel:"]
3) Create a tag, which will send data to GA
4) Check your events in GA.
Keep in mind that it might take a couple of hours to appear in Behaviour-> Events tab. Or you can check it immediately in Real Time -> Events tab
RESOLVED:
I just found out that in order to identify an event it is safer to look at how the data layer is changing after the action rather than on the "Variable" tab.
By doing so, you can see what data is actually going to google analytics, and it is more stable to use it as an ID for a trigger to fire.
In my case, I've had only elementURL that was pushed back to the datalayer. I used the parameter elementID equals "tel:xxxxxx" to make the tracker work. Hope it will help (just put your number instead of x).
Cheers!

No more recaptcha global key option?

I am curious if there's still possibility to create global keys for reCaptcha.
Documentation points it is possible, but I can find no way - no such option is there whenever I add a site.
Google made reCaptcha Global URL possible again in 2016 for the I'm not a Robot checkbox:
https://developers.google.com/recaptcha/docs/domain_validation
Now to get the keys to work on every URL you have to go to: "Advanced Settings" for your key, and untick the "Domain Name Validation" box:
https://www.google.com/recaptcha/admin
This is a security hole, so you are required to check the hostname field in your JSON response and reject any solutions that are coming from unexpected sources:
https://developers.google.com/recaptcha/docs/verify#api-response
This option has dissapeared. In fact, google is deleting that info from documentation step by step. There is an issue
Maybe we can ask to reopen that option, or at least, to obtain some info why this option its gone
Well the Secure Token would be the way to do this:
"A reCAPTCHA key is normally tied to a set of individual domains. However, you might have a large number of hosted domains and would like to have one key working on all of them - the solution is the secure token."
https://developers.google.com/recaptcha/docs/secure_token
A similar question (How can I use reCAPTCHA v2 on a large number of domains?) has a PHP sample and a Java sample is in GitHub https://github.com/google/recaptcha-java/tree/master/appengine

Using selenium in order to read emails on gmail

I'm using selenium-rc and I'm trying to click on a specific email on gmail in order to get into the email page. More specifically: on the gmail inbox, click on a email with a specific subject.
I can't find the correct xpath (none of the tags in the email part are links). Ideas?
This XPath should do the trick:
//div[#class = 'y6']/span[contains(., 'subject_here')]
... provided that you've first changed to the canvas_frame frame. Otherwise, it's unlikely it'll work at all. If you're not using Firebug to inspect the HTML, you really should as that's how I found out these values. Also, the Gmail structure changes fairly regularly, so that y6 class could change any day.
I haven't tested this, but this might work for you:
open http://gmail.com
// do the login stuff, click on login
waitForElementPresent canvas_frame
selectFrame canvas_frame
waitForElementPresent //div[#class = 'y6']/span[contains(., 'subject_here')]
clickAt //div[#class = 'y6']/span[contains(., 'subject_here')] 0,0
// do stuff you care about
Important: you have to use clickAt to cause Gmail to realize you're clicking. It doesn't work with just the simple "click" command.
By the way, we do this for our own internal monitoring of Gmail because it's been so unstable over the last few months. We're using my companies Selenium-based free monitoring service, which lets you run Selenium scripts to check performance and functionality of your site.
change gmail to basic html mode.
Is your app a Ruby on Rails one by chance? If so, email spec is a great way to test emails without haveing to mess around with Gmail: http://github.com/bmabey/email-spec
I used this command
clickAt | //table/tbody/tr/td[5]/div[#class='yW'] |
Click at the FROM field of first/recent/top most mail to go to mail detail page. // note: tr for first mail, tr[2] for second and so on.

Resources