我正在尝试自动登录此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!
答案 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");
尝试上面的代码并告诉我,它是否适合您。