2016-06-16 13 views
-2

Der aktuelle Code hat Werte lange HTML XPath, die & zu einem CSS-Wert verkürzt werden umgewandelt müssen:Wie Selen WebDriver XPath-Wert in CSS konvertieren

driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/div[3]/div[2]/button")).click(); 
+0

Also, was ist dein Problem? Erhalten Sie eine Fehlermeldung? – rdmueller

+1

Dies ist kein guter xpath, es sollte etwas wie '// form [form hier identifizieren] // button [identify button here]' sein, und es hat keine Informationen, um es in CSS-Selektor zu konvertieren. Ändern Sie diesen xpath so, dass zuerst '@ id', '@ class' oder andere eindeutige Attribute verwendet werden. –

+0

Bitte geben Sie den entsprechenden HTML-Code an, damit wir Sie bei der Auswahl des CSS-Selektors unterstützen können. Einige CSS-Referenzen, die Ihnen helfen können: https://www.w3.org/TR/selectors/#selectors, https://saucelabs.com/resources/selenium/css-selectors – JeffC

Antwort

0
driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/div[3]/div[2]/button")).click(); 
  • Sie möglicherweise ein hätte wählen können Besserer XPath-Ausdruck als dieser oben. Was Sie getan haben (ohne auf den tatsächlichen HTML-Code zu schauen) ist, dass Sie den kompletten xpath notiert haben, ist es möglich, es kürzer/robuster zu machen?

Betrachten Sie das folgende Beispiel:

driver.findElement(By.xpath("html/body/div/div/button")).click() 

oder Sie können es entlang dieser mit XPath finden:

<html itemscope itemtype="http://schema.org/QAPage"> 
    <body class = "question-page new-topbar"> 
     <div id="notify-container"></div> 
      <div id="topbar-wrapper"></div> 
       <button id="button1"></button> 
    </body> 
</html> 

Sie auf button1 klicken möchten, können Sie es mit dem vollständigen XPath finden Element andere Attribute, in diesem Fall seine ID.

driver.findElement(By.xpath("//button[@id='button1']")).click() 

oder, wie Sie möchten, können Sie CSS-Selektor verwenden:

driver.findElement(By.cssSelector('button[id='button1']')).click() 

Wenn Sie uns wollen Ihnen helfen, mit der Umwandlung Ihrer XPath in CSS-Selektor, müssen Sie kopieren und Ihre HTML-Code einfügen Auch in deiner Frage. Ohne auf den tatsächlichen Code zu schauen, können wir nicht 100% sicher sein.

Sie können den folgenden Link nützlich finden, wenn Sie versuchen, Xpath in CSS-Selektor zu konvertieren. https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/

+0

Wenn Sie eine ID haben, können Sie einfach Verwenden Sie 'By.id (" button1 ")' anstelle des CSS-Selektors. – JeffC