2017-02-24 2 views
1

ich versuche, Selen WebDriver zu verwenden, um ein Element zu suchen: i want click the "用户查询"Selen WebDriver das Element lokalisieren

entsprechenden html: the red frame

Python:

>>> driver.find_element_by_xpath("//div[@id='container']/h1[2]/a").click() 
Traceback (most recent call last): 
    File "<pyshell#22>", line 1, in <module> 
    driver.find_element_by_xpath("//div[@id='container']/h1[2]/a").click() 
    File "D:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 293, in find_element_by_xpath 
    return self.find_element(by=By.XPATH, value=xpath) 
    File "D:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element 
    'value': value})['value'] 
    File "D:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute 
    self.error_handler.check_response(response) 
    File "D:\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.NoSuchElementException: Message: no such element 
    (Session info: chrome=52.0.2743.116) 
    (Driver info: chromedriver=2.7.236900,platform=Windows NT 6.1 SP1 x86) 

wie dieses Element ausfindig zu machen?

Antwort

0

dies mit Indizierung unter XPath Versuchen.

Hier. [1] gibt die Indexnummer Ihres Tags a an. Angenommen, in Ihrem HTML gibt es Nummern eines Tags mit verschiedenen Namen wie diesem. 用户查询. Angenommen, dieser Text 用户查询 Indexnummer ist eine in Ihrem HTML, dann verwenden Sie unter XPath.

//h1[1]/a 

Wenn Dieser Text 用户查询 Indexzahl ist zwei in Ihrem html dann unter XPath verwenden.

//h1[2]/a 
+0

danke für Ihre Antwort aufrichtig. Ich versuche es und ändere es in "driver.find_element_by_xpath (" // * [text() = '用户 查询'] ")" keiner von ihnen funktioniert. –

+0

Ihr Text '用户 查询' wird geändert, wenn wir 'html' aus dem Browser sehen. Ich habe mein ANS auch aktualisiert. Angenommen, Ihr Text '用户 查询' befindet sich innerhalb von html mit 'n (Zahlen)', dann benutzen Sie xpath als '// h1 [n]/a' –

+0

ja, ich habe es versucht. Sie sind absolut richtig nach dem Hochladen der Webseite zu einem frame.thank sehr viel. –

0

Sie könnten versuchen, das Element based on it's link text Ortung:

driver.find_element_by_link_text("用户查询").click(); 
+0

danken Ihnen für Ihr answer.i es versuchen, aber keine solche Fehler element.i denken, dass Ihr Recht, dieses Element a href mit Text, aber keiner von ihnen sind Arbeit, irgendwelche Ideen? –

+0

Könnten Sie bitte den HTML-Code der ganzen Seite teilen? Vielleicht ist das ''-Tag in einem'