无法使用selenium登录

时间:2017-04-12 21:38:51

标签: selenium automation

我正在尝试自动登录此website

登录菜单位于网站的右上角。

我试图通过CSS选择器,Xpath,名称和此topic的操作找到登录表单。

编辑1:我还尝试将鼠标悬停在使用动作链的登录上,然后按元素查找。找不到元素,也没有发送密钥。

结果:

CSS查找,Xpath,名称显示:元素不可见; 动作事件:我将鼠标悬停在登录区域上,发送密钥,登录区域弹出但没有发送密钥,没有显示错误。

我的动作事件代码:

wd.get("http://www.vatgia.com")

action = ActionChains(wd);

action.move_to_element(wd.find_element_by_css_selector("#header_bar > div > div.fr > a:nth-child(8)"))
action.send_keys("loginsampling")

action.perform();

p / s:感谢Brian的编辑!

最终更新:

Mahipal为我提供了解决方案。我应该使用xpath关于登录表单和密码的容器。我之前只右键单击并复制xpath元素,但这不起作用。谢谢Mahipal!

2 个答案:

答案 0 :(得分:0)

这是因为您在尝试查找登录按钮之前未打开登录下拉列表。您需要找到Dropdown元素,单击它,然后找到登录字段和按钮并执行您的操作。

答案 1 :(得分:0)

您可以使用登录菜单的容器来识别其字段,如下所示:

driver.findElement(By.xpath("//div[@id='header_bar']//a[@rel='#header_login']")).click();

WebDriverWait wait = new WebDriverWait(driver, 10);

wait.until(ExpectedConditions.visibilityOf(
                driver.findElement(By.xpath("//div[@id='simple_tip']//div/input[@name='loginname']"))));

driver.findElement(By.xpath("//div[@id='simple_tip']//div/input[@name='loginname']")).sendKeys("login_name");

尝试上面的代码并告诉我,它是否适合您。