【发布时间】:2020-07-24 03:00:00
【问题描述】:
我正在尝试使用 selenium 单击网站上的按钮。 这是html:
<form action="/login/" id="login" method="post" class="form-full-width">
<input data-testid="loginFormSubmit" type="submit" class="btn btn-success btn-large" value="Log in"
tabindex="3">
</form>
这是我的一些代码:
if __name__ == "__main__":
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 100)
driver.get ('https://www.url.com/login/')
driver.find_element_by_name('username').send_keys('username')
driver.find_element_by_name('password').send_keys('password')
driver.find_elements_by_xpath("//input[@value='Log in' and @type='submit']")
我也试过了:
driver.find_element_by_value('log in').click()
driver.find_element_by_xpath("//a[@href='https://www.url.com/home/']").click()
但是当我运行它时,它总是会出现以下错误消息:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//a[@href='https://www.url.com/home/']"}
我是 selenium 和 web 驱动程序的新手,因此我们将不胜感激。
【问题讨论】:
-
在登录中尝试大写 L。元素是“登录”,而您正在寻找“登录”,所以 Selenium 找不到。 Python 区分大小写。
-
不,抱歉,这只是我的问题中的一个错误。虽然仍然不起作用 - 仍然会出现错误消息
-
xpath 不正确。 find_elements 返回元素列表。如果您只针对一个元素,则必须使用 find_element 方法。您可以尝试以下 xpath - //input[@data-testid="loginFormSubmit"]
标签: python selenium xpath css-selectors webdriverwait