简体   繁体   中英

Element not found when using webdriver with Selenium in Python

got a problem with my code and I need your help. What I'm trying to do is the following:

1- access a website;

2- fill the registration form: name , email , password , etc.

Step 1 works; after clicking the sign up button, the form will pop up in a new tab.

Step 2; when trying to find the elements, by, id or name , I get the error "selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element"

My code is the following:

driver.find_element_by_link_text('Sign Up').click()

time.sleep(3)

driver.find_element_by_id("signup_title").send_keys(signup_tile)
driver.find_element_by_id("signup_name").send_keys(signup_name)

Attached you can find the html. Thank you in advance, much appreciated your help. Note

In console I tried to find the element searching the id using $x("//*[@id='signup_title']") and it was found: [input#signup_title.sc-AxirZ.kzqQJb.invalid] . Also the element is loaded.

HTML

Try using:

driver.find_element_by_xpath("<XPath>")

It seems to work better. To get the XPath of an element, find the element in the inspector, right-click it then Copy -> Copy XPath. If that doesn't work, select Copy Full XPath instead

The problem was related to the second tab; because the form opens in another tab, the window must be switched in the code. I used the following: driver.switch_to.window(driver.window_handles['Nr']), Nr being the index for the tab- if there are 2, the main one, and the second one-in my case with the form, the index will pe 1-counting starts from zero.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM