首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python : WebDriverWait找不到元素

Python : WebDriverWait找不到元素
EN

Stack Overflow用户
提问于 2017-08-21 13:46:46
回答 1查看 309关注 0票数 0

我对Python和Selenium还不熟悉,只是遇到了一个问题。我正在尝试制作一个脚本,它将自动单击Facebook页面的“相似”按钮(在弹出中)。

编辑-本地主机网页代码:

代码语言:javascript
复制
<html>
<head>
<title>Link to Facebook Page</title>
<link rel="stylesheet" type="text/css" href="default.css">
</head>
<body>
<center>
<div id="fb_like">
<a href="https://m.facebook.com/AdagioTV" target="_blank"><img src="fblogo.png"></a>
</div>
</center>
</body>
</html>

我有以下代码:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

webpage = r"http://localhost/like/" # local web

driver = webdriver.Firefox()
driver.get(webpage)

sbox = driver.find_element_by_class_name("fb_like")
sbox.click()

print "opened fb popup"

现在,该页面打开我们facebook页面的移动版本(在弹出中),类似于:https://m.facebook.com/AdagioTV

为了等待页面加载并单击like按钮,我有以下代码:

代码语言:javascript
复制
time.sleep(5)
print "slept 5 seconds" # page loading time
WebDriverWait(driver, delay).until(EC.presence_of_all_elements_located((By.ID, 'action_bar')))
likebutt = driver.find_element_by_link_text('Like')
likebutt.click()

然而,这将找不到元素,既不喜欢也不喜欢action_bar,而且它永远不会-睡眠。我在这里做错什么了?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 17:03:58

尝试:

代码语言:javascript
复制
String parentWindowHandler = driver.getWindowHandle(); //parent window
String subWindowHandler = null;

Set<String> handles = driver.getWindowHandles();
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
    subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window

time.sleep(5)
WebDriverWait(driver, delay).until(EC.presence_of_all_elements_located((By.ID, 'action_bar')))
likebutt = driver.find_element_by_link_text('Like')
likebutt.click()

顺便说一句,如果它不起作用,尝试在弹出窗口中等待另一个元素定位器(更简单),这可能是错误的定位器的问题:我没有在你的网页代码中看到“动作条”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45798781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档