2017-06-26 2 views
-1

Ich habe so eine HTML-Seite wie folgt:
Selen: wie eine Spannweite Klasse innerhalb eines div finden

<div id="abc" class="MyClass" data-placement-name="mysearch"> 
    <div class="A" title="class A"> 
    <div class="separator"></div> 
    <span class="btn" onclick="return placementEvCall('abc', 'def', event, this);"> 
     ::before 
    </span> 
... 
... 

Jetzt möchte ich die Wirkung von onclick von btn zu tun.

Ich habe versucht, driver.find_element_by_id('abc') und es funktionierte wie erwartet.

Aber ich weiß nicht, wie zu bekommen und klicken Sie auf das Objekt btn, die eine Span-Klasse in div ist.


UPDATE
enter image description here

+1

xpath - "// div [@ id = 'abc']/span" –

+0

@ Yves, Was willst du eigentlich machen? Versuchst du nur auf diese "span" zu klicken? oder wollen die Rückgabe des Wertes durch "onclick =" return placementEvCall ('abc', 'def', Ereignis, das); 'diese Methode? – NarendraR

+0

@Tuks Ich muss nur klicken. – Yves

Antwort

0

Sie können einfach

In [1]: from selenium import selenium 

In [2]: from selenium import webdriver 

In [3]: from selenium.webdriver.common.keys import Keys 

In [4]: from selenium.webdriver.firefox.webdriver import FirefoxProfile 

In [5]: browser = webdriver.Firefox() 

In [6]: browser.get('file:///home/pooja/example_page.html') 

In [7]: btn = browser.find_element_by_class_name('btn') 

In [8]: btn.cl 
btn.clear btn.click 

In [8]: btn.click() 

Für Ihre reference

+0

Jetzt ich einen solchen Fehler erhalten: 'Nachricht: ungültiger Selektor: Zusammengesetzte Klassennamen nicht erlaubt' – Yves

+0

@Yves können Sie einen Blick auf https://stackoverflow.com/questions/32043877/compound-class-names-not-permitted-error- Webdriver für Ihre Fehlermeldung – Pooja

+0

In der Tat Sie sind richtig. Geh, um das Capture in meiner Frage zu sehen. Sie werden feststellen, dass es drei Klassennamen gibt. Ich habe versucht, 'find_element_by_class_name (ui_icon search cye-lm-tag)' zu finden, deshalb habe ich den Fehler bekommen. Jetzt habe ich nur 'find_element_by_class_name (search)' und es funktioniert. – Yves

1

Versuchen mit xpath mit einem Wert //div[@id="abc"]//span[@class="btn"] wie folgt verwenden:

Lassen Sie mich wissen, wenn dies Ihre Frage beantwortet.

+0

Ihre Antwort sollte gut funktionieren, aber nicht für meinen Fall. Ich habe nur den wahren Fall in meine Frage gestellt. Ich versuche, das ausgewählte Teil zu erhalten und die Klickaktion auszuführen. Ich habe es folgendermaßen versucht: 'driver.find_element_by_xpath ('// div [@ id =" taplc_masthead_search_0 "] // span [@class =". Ui_icon.search.cye-lm-tag "]'). Click() 'oder' driver.find_element_by_xpath ('// div [@ id = "taplc_masthead_search_0"] // span [@ class = "suche"]'). click() 'oder' driver.find_element_by_xpath ('// div [@id = "taplc_masthead_search_0"] // span [@ class = "ui_icon Suche cye-lm-tag"] '). click() '. Nichts funktioniert. – Yves

+0

Wenn möglich, können Sie versuchen: 'https: // www.tripadvisor.cn /'. Ich versuche einen Klick auf das Suchsymbol oben rechts in der Ecke zu simulieren. – Yves

Verwandte Themen