2016-03-28 15 views
2

Ich versuche, Selenium auf View All Companies Knopf klicken, aber ich bin mir nicht sicher, was ich falsch mache. Es gibt no element foundSelen finden Element und klicken Sie darauf

HTML-Code

<div class="screener-toggles"> 
    <div class="buttons"> 
    <span class="button selected" data-name="advanced-screener">Search by Screener<span data-name="advanced-screener" class="arrow selected"></span></span> 
    <span class="button" data-name="alpha-factors">Search by Alpha Factors<span data-name="alpha-factors" class="arrow"></span></span> 
    <span class="button" data-name="all-companies">View All Companies<span data-name="all-companies" class="arrow"></span></span> 
    </div> 
</div> 

ich Python-Code schrieb

element1 = driver.find_elements_by_class_name('View All Companies') 
element1.click() 
# I have tried all-companies instead of View All Companies as well. But still doesn't work 

Sollte ich nicht find_elements_by_class_name verwenden?

Alle Ratschläge, was ich falsch mache, werden sehr geschätzt!

Antwort

1

View All Companies Text, nicht die Klasse. Versuchen Sie suchen nach Text mit css_selector oder xpath

element1 = find_element_by_css_selector('span:contains("View All Companies")') 

element1 = find_element_by_xpath('//span[contains(text(), "View All Companies")]') 

oder durch das data-name Attribut, das all-companies

element1 = find_element_by_css_selector('span[data-name*="all-companies"]') 
+0

Danke @Guy! Sollte auch 'css_selector' berücksichtigt haben. –

1

Ja, Sie sollten nicht find_elements_by_class_name statt find_element_by_class_name verwenden.

find_elements_by_class_name wird verwendet, wenn Sie erwarten, dass Ihr Locator mehr als 1 Element zurückgibt. Verwenden Sie für ein bestimmtes Element nur find_element_by_class_name.

Eine andere Sache ist, dass ich keinen Klassennamen als View All Companies in Ihrem HTML-Code sehen kann. Bitte schauen Sie in Ihre HTML und wählen Sie Klassennamen oder andere Locator sorgfältig

Hoffe, es wird Ihnen helfen,

+0

enthält, dass die gesamte HTML war auf die Tasten im Zusammenhang .. Gibt es eine andere Art und Weise auf die Schaltfläche zu klicken, basierend auf die HTML, die ich gepostet habe? –

+0

Ja können Sie .. können Sie bitte kommentieren Sie das genaue Element/HTML-Code, den Sie suchen –

2

try XPath: "//span[contains(text(),'View All Companies')]"

+1

Dank @Leon. Das funktioniert großartig! –

Verwandte Themen