我试图从谷歌Play商店检索有关该应用程序的信息(包括评论)。有些评论的长度很短,有些评论很长,有完整的评论按钮。当页面加载在浏览器上时,我想执行单击命令,以便它单击所有评论的评论按钮(如果有的话),然后开始从页面提取信息。这是我的代码:
baseurl='https://play.google.com/store/apps/details?id=com.zihua.android.mytracks&hl=en&showAllReviews=true'
driver.get(baseurl)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='d15Mdf bAhLNe']//div[@class='cQj82c']/button[text()="Full Review"]"))).click()
person_info = driver.find_elements_by_xpath("//div[@class='d15Mdf bAhLNe']")
for person in person_info:
review_response_person = ''
response_date = ''
response_text = ''
name = person.find_element_by_xpath(".//span[@class='X43Kjb']").text
review = person.find_element_by_xpath(".//div[@class='UD7Dzf']/span").text
然而,程序在代码的第三行抛出以下错误(即。网络驱动等待(驱动程序,10)):
ElementClickInterceptedException: Message: element click intercepted: Element <button class="LkLjZd ScJHi OzU4dc " jsaction="click:TiglPc" jsname="gxjVle">...</button> is not clickable at point (380, 10). Other element would receive the click: <a href="/store/apps" class="L9ZZW uJjCzb">...</a>
谁能指导我如何解决这个问题?
它看起来像是在范围内,就在可见的修剪审查(jsname=“fbQN7e”
)的下方,因此您可以这样做
driver.get("https://play.google.com/store/apps/details?id=com.zihua.android.mytracks&hl=en&showAllReviews=true")
reviews = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//div[@jsname='fk8dgd']"))
)
for review in reviews.find_elements(By.CSS_SELECTOR, "div[jscontroller='H6eOGe']"):
reviewText = review.find_element(By.CSS_SELECTOR, "span[jsname='fbQN7e']")
print(reviewText.get_attribute("innerHTML"))
但是,这可能只会返回一个评论,您需要将页面向下滚动到底部,以便将它们全部加载进去。还有其他答案给出了如何做到这一点的好例子。一旦添加,它将迭代每个完整的审查,而不需要单击一个按钮来展开。
问题内容: 我正在寻找一种在页面加载时自动“单击”项目的方法。 我尝试使用 但这似乎行不通吗?但是,当我进入Firebug的控制台并运行脚本时,它可以工作。 可以在加载时使用触发事件吗? 问题答案: 您尝试触发的点击处理程序很可能也通过附加了。可能发生的情况是您在附加处理程序之前触发了事件。解决方法是使用: 10ms的延迟将导致该函数在所有处理程序被调用后立即运行。
问题内容: 我想使用JSoup从文档中选择所有注释。我想做这样的事情: 我已经试过了: } 但是在日食“不兼容的条件操作数类型元素和注释”中发生以下错误。 干杯, 问题答案: 由于您需要应用到节点对象,而不是元素,因此:
PrimeFaces 5.0、JSF 2.2、Glassfish 4.1.1、, 我假设我的设置中有些东西没有正确配置,但我不确定该看什么。。。 所以我使用managedbeans来支持JSF页面。在页面上的PrimeFace元素中,如果我使用oncomplete属性,它引用的方法将在页面加载时被调用。我不想让它在每次加载页面时调用这个方法,我也不认为应该这样! 我已经在几页和不同的元素中对此进行
问题内容: 我正在尝试编写一个查询,以获取每个新闻的所有新闻和所有评论。我当前的查询是: 但是,当我以数组的形式获取查询时,它通过注释为我提供了一个键,而我希望通过新闻和一个子数组中的所有注释来获得一个键。 就像是: 谢谢! 问题答案: 您无法在一个查询中做到这一点-最好采用您已得到的查询并对所得到的答案进行后处理以获得所需的数据结构。 为了进一步详细说明-任何SQL查询只能返回二维数据数组-一维
我正在试验WikipediaAPI,并试图获取特定页面上所有图像的完整URL,在本例中为谷歌主页(http://en.wikipedia.org/wiki/Google). 我通过使用另一个API找到了页面id,然后尝试在以下API中使用此信息来获取该页面上所有图像的完整URL: http://en.wikipedia.org/w/api.php?action=query 我从中获得了一些页面图像
我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu