2017-01-21 4 views
-1

enter image description here Folgen Sie den HTML der Seite, wie bekomme ich den Xpath oder gibt es eine andere Möglichkeit, Java zu automatisieren? In der Tat, schütteln wir klicken Sie auf diese Schaltfläche "Weiter".So finden Sie Xpath in Selen webdriver

<regform-button> 
<button ng-disabled="activityIndicator" ng-click="validate()" type="button"> 
<div template="api-loader" ng-http-loader=""> 
<div class="http-loader__wrapper ng-hide" ng-show="showLoader" ng-include="template"> 
<span class="api-loader"></span> 
</div> 
</div> 
<ng-transclude> 
</button> 
</regform-button> 

Antwort

1
driver.findElement(By.xpath("//regform-button/button")).click(); 
+0

Dint Arbeit. Bleibt auf derselben Seite.Tried: driver.findElement (By.xpath ("// regform-button/button")). Click(); – sandy

+0

Sind Sie sicher, dass das die Schaltfläche "Weiter" ist? – eLRuLL

+0

Ja. In dem Versuch, dieses Registrierungsformular in dem folgenden Link zu automatisieren. https://uk.match.com/unted/landing/2016/06/02/hpv-belowthefold-3steps-geo-pscowbowling?klid=6740 – sandy

1

Wenn Sie Google Chrome verwenden, klicken Sie rechts auf die Schaltfläche und wählen Sie im Pop-up prüfen. Der HTML-Code wird in einem Developer-Tool-Rahmen geöffnet. Klicken Sie mit der rechten Maustaste auf das Element im Rahmen der Entwicklerwerkzeuge, bewegen Sie den Mauszeiger über die Kopie und wählen Sie "xpath kopieren".

Hier ist der XPath zum Formular auf der URL.

// * [@ id = "Hauptrahmen"]/div [1]/div [2]/div/div [1]/div [1]/form/regform-Schritte/ng-transclude/RegForm-Schritt [1]/ng-Form/ng-transcluden/RegForm-Taste/Taste

WebDriver driver = new ChromeDriver(); 
    driver.get("https://uk.match.com/unlogged/landing/2016/06/02/hpv-belowthefold-3steps-geo-psc-bowling?klid=6740"); 
    //fill in fields 
    WebElement element = driver.findElement(By.xpath("//*[@id=\"main-frame\"]/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")); 
    element.click(); 
+0

Es dint Arbeit oder ich. Es bleibt auf der gleichen Seite. es soll zum nächsten Schritt auf der nächsten Seite gehen. – sandy

+0

Haben Sie die Felder von Hand oder mit Code ausgefüllt? Ich ging mit einem Debuger durch den Code und füllte die Felder mit der Hand aus. Ist die Seite einfach nicht auf den Klick gegangen? Ist die Seite mit Validierungsfehlern zurückgekehrt? – ProgrammersBlock

0

Sobald Sie die gewünschten Werte aus den Dropdown-Menüs erscheinen vor Schaltfläche Weiter ausgewählt haben, klicken Sie bitte auf Weiter Schaltfläche mit der folgenden Anweisung:

driver.findElement(By.xpath("//span[text()='Continue']")).click(); 
+0

Ist das für Chrome oder FF Browser? – sandy

+0

Es sollte für Chrome und Firefox funktionieren. Ich hatte es mit Firefox getestet und es funktionierte für mich. – Mahipal

1

Versuchen Sie, die Konsole zu öffnen Google Chrome und Eingabe des folgenden: document.evaluate ("// RegForm-Taste/Taste", Dokument, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) .singleNodeValue.click()

Es funktioniert ... das ist, wenn Sie habe die erforderlichen Felder angegeben. Warten Sie nach der Angabe der erforderlichen Felder auch eine Weile (2 Sekunden), da nach dem Festlegen der erforderlichen Felder möglicherweise eine zusätzliche Belastung auftritt.

Edit: Der Code ist Javascript..Ich nahm nur die Xpath von den vorherigen Antworten gegeben und verwendet, um das Element durch js zu lokalisieren. Ich sage, dass "// regform-button/button" funktionieren sollte.

0

Der folgende xpath funktionierte für mich. Aber ich weiß nicht, warum es für jeden anderen Browser anders ist.

Für Firefox:

`driver.findElement(By.xpath("//*[@id='main-frame']/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")).click()`; 

Für Chrom: driver.findElement(By.xpath("//regform-button/button")).click();

Verwandte Themen