2017-04-24 8 views
2

Ich importieren die folgenden Methoden:Ist es möglich, mit Java auf einen bestimmten Punkt auf einer Webseite zu klicken?

import helper.webdriver.ExtraMethods; 
import helper.webdriver.JavascriptMethods; 
import org.junit.Test; 
import org.openqa.selenium.By; 

ich brauche (oder clickAndWait) auf einem span-Element zu klicken, die größer ist als die CTA selbst zu sein scheint, ohne irgendwelche untergeordneten Elemente es ISIDE (mit Ausnahme des Textes) .

Also ich würde gerne wissen, ob es eine Möglichkeit gibt, meine IDE auf einen bestimmten Punkt auf einer Webseite klicken zu lassen (wie wenn Sie Koordinaten eingeben, wird es auf den entsprechenden Ort klicken).

Alternativ würde ich gerne wissen, ob es möglich ist, direkt auf den eigentlichen Text zu klicken (da der Text im CTA enthalten ist und der Befehl gültig wäre).

Vielen Dank im Voraus!

Später bearbeiten:

Die URL, in dem ich versuche, dies ist http://www.chevrolet.com/current-deals

Mein Problem ist, dass ich auf dem „Request a Quote“ CTA für jedes Fahrzeug klicken möchte (dies erscheint nach einem Klick auf einem beliebigen "Angebote" -Button). Ich ging innerhalb des iframe, aber ich versuchte, durch xpath und css zu klicken, aber der Bereich, in dem dieser CTA eingeschlossen wird, scheint größer als der tatsächliche CTA zu sein.

ich verwenden, um die folgenden Importanweisungen:

import helper.webdriver.ExtraMethods; 
import helper.webdriver.JavascriptMethods; 
import org.junit.Test; 
import org.openqa.selenium.By; 

Und mein eigentlicher Code hierfür war:

clickAndWait(resolve("xpath=(//*[@class='CTA btn_prim'])[1]")); 

ich auch versucht, den "tabindex" atribute verwenden, die für die jeweils einen bestimmten Index hat Artikel.

+0

versuchen Sie 'java.awt.Robot' – XtremeBaumer

+0

Vielen Dank für Ihre schnelle Antwort. Ich habe nach dem Lesen Ihres Kommentars danach gesucht. Ich habe festgestellt, dass ich die folgenden Importanweisungen benötigen würde: import java.awt.AWTException; importieren Sie java.awt.Robot; Import java.awt.event.InputEvent; import java.awt.event.KeyEvent; Allerdings kann ich die zugehörigen Befehle für diese bestimmte Aktion nicht finden (Klicken auf Text oder an einem bestimmten Ort auf der Webseite). –

+1

Willkommen bei Stack Overflow! Bitte lesen Sie [fragen] und [Wie viel Forschungsaufwand wird erwartet?] (Https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-sected-of-stack-overflow-users) Bitte geben Sie den von Ihnen ausprobierten Code und das Ausführungsergebnis einschließlich etwaiger Fehlermeldungen usw. an. Geben Sie auch einen Link zu der Seite und/oder dem entsprechenden HTML an. – JeffC

Antwort

1
Robot r=new Robot(); 
r.mouseMove(x, y); 
r.mousePress(InputEvent.BUTTON1_DOWN_MASK); 
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); 

dies schafft einen Roboter, der den Mauszeiger bewegt (die aktuellen Cursor. Sie nicht bewegen Sie die Maus sollen) auf die x/y-Position und führt einen einzelnen Linksklick.

x und y beginnen oben links auf dem Bildschirm.

Dies ist möglicherweise nicht die beste Lösung, wenn es eine Lösung für dieses spezielle Problem, wie es kann es ziemlich schlecht versauen, aber es funktioniert. Wenn Sie eine bessere wissen, zögern Sie nicht mir zu sagen

+0

Ich habe diese Lösung versucht und das tatsächliche Ergebnis ist, dass während des Tests, wenn dieser Code berechnet wird, öffnet mein PC nur mein Startmenü, anstatt auf wo die Koordinaten zeigen. Ich nahm die X- und Y-Werte aus dem WebDeveloper Tool von Firefox mit dem Lineal. –

+0

Wie hoch ist Ihre Bildschirmauflösung und wie lauten Ihre Koordinaten? – XtremeBaumer

+0

Ich benutze zwei Monitore, beide auf 1920x1080. Kann es sich um ein Problem mit zwei Monitoren handeln? Ich habe folgende Koordinaten benutzt: (904, 1416). Ich dachte, dieser Befehl würde im Browser angewendet werden. Wenn dies nicht der Fall ist, glaube ich, dass mein Skript zuerst zu dem fraglichen Element blättern muss, da es in der ersten Instanz nicht sichtbar ist. –

Verwandte Themen