嗨,我正试图打开一个网页,并点击一个链接,打开一个模式要求输入用户名。输入用户名后,它会要求输入密码。在
我对selenium不太熟悉,正在尝试熟悉浏览器自动化。在
在右侧有一个登录/注册选项,打开一个模态。在
在看过youtube视频后,我尝试修改以下代码: https://www.youtube.com/watch?v=--vqRAkcWoM。在
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class LoginTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox(executable_path="C:/Users/dabangg/Downloads/python/geckodriver-v0.16.1-win32/geckodriver.exe")
self.driver.get("http://mumbai.quikr.com/")
def test_Login(self):
driver =self.driver
# loginLink = "//input[@value='Log In']"
# loginLink="submit"
# loginLink="(//a[contains(@id,'loginLink')])[1]"
# loginLink = "(//a[contains(@href,'javascript:')])[1]"
loginLink = '//*[@id=\'loginLink\']/'
loginButtonElement = WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_xpath(loginLink))
loginButtonElement.click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
我试图使用class/id/xpath
来定位元素,但是它们都不起作用。使用span,我能够找到元素,但是我得到一条消息,说元素是不可交互的。在
另外,在另一个不能有人请帮我区别或使用下面
哪一个更适合使用/学习。在
我通常使用C,但问题的起因是您使用的是一个id,在代码中您称之为xpath:
可能应该是find\u element\u by_id(loginLink)) 在C语言中,我会用引号将Id括起来,但我不知道这是否有效。
如果您像以前一样通过xpath找到element,那么使用find_element_by_xpath(.//*[@id='loginLink']/span)…但是注意引号,因为在我的语言中,我们将其视为字符串,所以我不知道什么对您有效
我只是添加了一个睡眠命令,现在它正在工作。代码如下:
https://www.youtube.com/watch?v= vqRAkcWoM
尝试通过
linkText
找到所需的元素,并等待它变为可单击:请注意,在您的定位器
'//*[@id=\'loginLink\']/'
中,谓词后面有额外的斜杠。尝试删除斜杠('//*[@id=\'loginLink\']'
)以使定位器有效相关问题 更多 >
编程相关推荐