我使用了related question中的一小段代码
username = driver.find_element_by_name("username")
username.send_keys("username")
我查看了登录页面的源代码,发现:HTML snippet
但是,我同时收到关于username = driver.find_element_by_name("Email")和username = driver.find_element_by_name("ember442")的错误。
错误信息为:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 385, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 791, in find_element
'value': value})['value']
File "/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"Email"}
我在这里做错了什么?我唯一的其他想法是使用其他命令之一来定位元素(find_element_by_id、find_element_by_name、find_element_by_xpath、find_element_by_link_text、find_element_by_partial_link_text、find_element_by_tag_name、find_element_by_class_name、find_element_by_css_selector),但这些命令似乎也不起作用。
发布于 2017-06-23 23:31:05
这是因为这些都不是元素名称。您应该使用:
username = driver.find_element_by_id("ember442")
发布于 2017-06-23 23:31:28
这是你问题的答案:
对于电子邮件,尝试将xpath作为//input[@id='ember442']
username = driver.find_element_by_xpath("//input[@id='ember442']")
username.send_keys("username")
对于密码,请尝试以//input[@id='ember443']
身份使用xpath
username = driver.find_element_by_xpath("//input[@id='ember443']")
username.send_keys("username")
如果这回答了你的问题,请让我知道。
发布于 2017-06-24 00:20:46
明白了!我最终找到了一个related question (尽管是使用Java的)和答案中的一段代码:driver.findElement(By.xpath("//input[@name='name']"))
,并将其修改为:username = driver.find_element_by_xpath("//input[@placeholder='Email']")
我很想知道如何通过引用id名称(find_element_by_id
)来实现这一点,但这是一个特定于任务的问题,所以现在可以用了!
我必须在find_element_by_xpath
中指定占位符名称。
https://stackoverflow.com/questions/44725060
复制相似问题