2015-12-22 2 views
1

xpath для элемента, который я искал, верен.правильный xpath, но find_element_by_xpath не работает python

Все элементы, перед которыми оно было обнаружено, и были предприняты действия по ним через xpath.

Однако для этого единственного местоположения экземпляра по xpath не удается. Почти если сайт активно отрицал свое существование, когда я его искал в Селене.

У кого-нибудь был опыт? Могу ли я указать направление, чтобы узнать больше об этом, и как его исправить.

сайта Я автоматизация является facebook.com

Моей мышь над формой я пытаюсь найти и ввод в картинке ниже No I am not worried about you seeing my facebook

Соответствующий код ниже:

# from facebook homepage search search for the group 
waitForElements(['homepageSearchBarsearchButton']) #STACK OVERFLOW CODE FAILS HERE 
element = driver.find_element_by_xpath((xpath['homepageSearchField'])) 
element.send_keys(passedText['homepageSearchBarInput']) 
time.sleep(randomWait()) 
element = driver.find_element_by_xpath(xpath['homepageSearchBarsearchButton']) 
element.click() 

ожидания для функции элементов ниже

def waitForElements(xpaths = [], *args): 
elementLoad = None 

for x in xpaths: 
# noinspection PyRedeclaration 
elementLoad = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH, xpath[x]))) 

Провал след ниже:

File "/home/honeytoes/PycharmProjects/Chicags20sEarly30s/lookingForTagCompliance/lookingForTagCompliance/workingFile.py", line 108, in <module> 
     element = driver.find_element_by_xpath(xpath['groupSearchField']) 
     File "/home/honeytoes/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 258, in find_element_by_xpath 
     return self.find_element(by=By.XPATH, value=xpath) 
     File "/home/honeytoes/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 712, in find_element 
     {'using': by, 'value': value})['value'] 
     File "/home/honeytoes/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute 
     self.error_handler.check_response(response) 
     File "/home/honeytoes/.local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 181, in check_response 
     raise exception_class(message, screen, stacktrace) 
    selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":".//*[@id='u_jsonp_5_2']/span/span/input"} 
    Stacktrace: 

Спасибо

ответ

0

Как насчет сделать альтернативный читаемый селектор на основе placeholder атрибута:

//input[@placholder="Search this group"] 
+0

Я не 100 процентов уверен, что вы имеете в виду , Читаемый селектор - это тот термин, который я смогу найти и узнать больше? Или вы можете указать мне в направлении, в котором я должен идти, чтобы ускорить детали вашего решения? Спасибо –

+0

@ Кристофер Якоб извините за замешательство. Я имел в виду попробовать использовать предлагаемое выражение xpath вместо './/*[@ id = 'u_jsonp_5_2']/span/span/input'. – alecxe

+0

О, я вижу, поэтому ваш вызов в xpath, который ищет поле с текстом-заполнителем «Искать в этой группе». Умный, я дам вам попробовать сейчас –

Смежные вопросы