我正在尝试登录网站 但问题是,只有将鼠标指针悬停在它上面之后它才会起作用。
我试过这个
loginform = driver.find_element_by_id('loginDiv')
if loginform.get_attribute('style') == 'display: none;':
print "check!!"
email = driver.find_element_by_id('username')
passwd = driver.find_element_by_id('passwd')
email.send_keys('my_email')
passwd.send_keys('my_pass')
passwd.send_keys(Keys.RETURN)
正如我所说,只有当我悬停鼠标时,我才能通过此脚本登录(我的意思是首先运行此脚本并查看页面是否已完全加载,然后我快速将鼠标移到登录按钮上,我可以看到我的登录详细信息正由此脚本输入,但如果我不悬停,则其他方式将无法登录。
答案 0 :(得分:1)
我不确定,但一旦尝试这个
options=driver.find_elements_by_class_name("user_area")
for option in options:
if(option.text=="Login")
option.click()
time.sleep(3)
option.click()
email = driver.find_element_by_id('username')
passwd = driver.find_element_by_id('passwd')
email.send_keys('my_email')
passwd.send_keys('my_pass')
passwd.send_keys(Keys.RETURN)
我写了两次option.click()因为在你的网站上第一次点击使登录表格消失。所以第二次点击可以帮助我们..
答案 1 :(得分:1)
我已经这样解决了:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://pythondev.zyante.com/")
loginForm = driver.find_element_by_id("user_area")
loginLink = loginForm.find_element_by_tag_name("a")
webdriver.ActionChains(driver).move_to_element(loginLink).perform()
email = driver.find_element_by_id('username')
email.send_keys('my_email')
passwd = driver.find_element_by_id('passwd')
passwd.send_keys('my_pass')
button = loginForm.find_element_by_class_name("loginButton")
webdriver.ActionChains(driver).move_to_element(button).click().perform()
以上代码适用于我。
答案 2 :(得分:0)
我在Java中使用名为JavascriptExecutor的类完成了类似的操作。使用此类,您可以执行javascript。您可以使用javascript单击或处理隐藏的元素,而无需打开窗口。不确定Python中是否存在相同内容。
答案 3 :(得分:0)
使用selenium-webdriver在JAVA中执行以下登录,希望它也适用于Python。
在执行登录操作之前,必须在登录元素上执行鼠标悬停。
Actions action = new Actions(driver);
WebElement e=driver.findElement(By.id("user_area"));
//action.moveToElement(e).build().perform();
以上命令无法打开“登录”弹出窗口,因为默认情况下,在中心上执行任何元素上的悬停。不幸的是,Login|Request Access|Help
是一个带有id="user_area"
的单个html元素,并且在自动悬停移动到中心时突出显示请求访问。
action.moveToElement(e,10,0).build().perform();
因此,上述语句用于从元素的左上角给出偏移并悬停在登录上。
有关使用selenium-webdriver进行高级鼠标操作的更多信息,请参阅以下链接 http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/interactions/Actions.html
检查函数moveToElement以更好地理解它。