2016-07-15 11 views
1

Hallo ich benutze Ghostdriver für Selen. Ich versuche, mich in Google Adwords einzuloggen, aber aus irgendeinem Grund habe ich extreme Probleme.Nichts auf der Seite wird aktiv oder anklickbar

Hier ist mein Code:

Dim driver As New PhantomJSDriver 
    Dim options = New PhantomJSOptions() 
    options.AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36") 

    driver.Navigate.GoToUrl("https://accounts.google.com/ServiceLogin?service=adwords&continue=https://adwords.google.com/um/identity?dst%3D/ko/KeywordPlanner/Home&hl=en_US&ltmpl=signin&passive=0&skipvpage=true#identifier") 

    driver.Manage.Window.Maximize() 

    Dim i As IWebElement = driver.FindElementByName("Email") 
    Dim a As New Actions(driver) 

    a.MoveToElement(i).Click().Perform() 

    Dim jse As IJavaScriptExecutor = DirectCast(driver, IJavaScriptExecutor) 
    jse.ExecuteScript("document.getElementById('Email').focus();") 



    Dim nextbtn As IWebElement = driver.FindElementById("link-signup") 
    nextbtn.Click() 

    Try 
     Dim ss As Screenshot = DirectCast(driver, ITakesScreenshot).GetScreenshot() 
     ss.SaveAsFile("D:\SeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) 
    Catch 

    End Try 

Wie Sie es ist ein sehr einfaches Verfahren sehen. Das Problem ist, dass auf der Seite alles ausgegraut ist (ich habe es per Screenshot überprüft). Es ist so, als ob etwas nicht richtig auf die Seite geladen wird und die Textbox oder Schaltflächen oder Links aktiviert werden. Ich kann nichts klicken. Ich habe viele verschiedene Dinge ausprobiert, aber nichts funktioniert für mich. Javascript ist aktiviert, ich habe den User Agent geändert, falls der Phantomjs blockiert ist. Jede Hilfe zu diesem Thema wäre willkommen. Ich kann mit C# oder vb.net arbeiten, es spielt keine Rolle. Ich habe das Gefühl, Google ist hier schwierig.

+0

Klingt wie eine Endlosschleife clientside. Können Sie das Javascript debuggen? – user3532232

+0

Eine Sache, die Sie versuchen könnten, würde etwas Licht auf das Thema werfen, ist zu sehen, ob Sie sich über einen anderen Google-Dienst wie Mail oder Fotos oder Analysen anmelden können. Ich wette, Sie haben recht, es macht Sinn, Bots auf einer Login-Seite zu erkennen und zu blockieren. –

Antwort

1

Ich glaube, ich habe das Problem hier gelöst. Es ist ziemlich einfach und ich fühle mich dumm, es nicht früher zu sehen. Es scheint, als ob alles nur ausgelöst wird, damit SCHNELLE Dinge nicht richtig geladen werden können. Also fügte ich einen einfachen threading.thread.sleep Befehl zwischen Aktionen hinzu und Dinge scheinen jetzt gut zu funktionieren. Alles war ausgegraut, weil es einen Screenshot gemacht hatte, bevor die Elemente richtig geladen werden konnten.

+2

es ist lustig, es gibt ein Bot Guard-Skript auf der Seite, aber vielleicht entdeckt es andere Sachen. Es sagt,/* Anti-Spam. Willst du Hallo sagen? Kontakt (base64) Ym90Z3VhcmQtY29udGFjdEBnb29nbGUuY29t -> [email protected] –

+1

Bitte vergessen Sie nicht, zurückzukommen und die Antwort als akzeptiert zu markieren, damit die Frage als beantwortet markiert wird. Vielen Dank! – JeffC