如何使用selenium-python从对话中获取文本?

时间:2016-06-30 07:56:15

标签: python selenium selenium-webdriver dialog

我想在弹出窗口中抓取对话文本。问题是,在我触发链接后,窗口出现,但似乎selenium驱动程序无法自动处理,因为我通过输入driver.window_handles从本网站上的其他问题中了解到。 触发源:

enter image description here

len(driver.window_handles)的值是1.我以为我可以获取窗口元素,然后通过get_attributes获取文本,幸运的是我成功获取元素

wd = driver.find_element_by_css_selector('div[node-type="repeat_list"]')
  

selenium.webdriver.remote.webelement.WebElement(session =“f810cbbe-db43-4e8d-b484-664559ec8efc”,element =“{dd00e689-7991-44e9-85d3-76c69e79218f}”)

但令人遗憾的是,我不知道如何从中获取所有的东西,因为我不知道它们的属性。

我不确定这是否是对话,前端工程师告诉我它看起来像是动画。无论如何,这是源代码片段:

enter image description here

PS:浏览器 Firefox

我认为可能会违反网站的“可接受使用政策”来抓取,然后我应该隐藏一些信息。遗憾。

1 个答案:

答案 0 :(得分:0)

获得父元素后:

wd = driver.find_element_by_css_selector('div[node-type="repeat_list"]')

您可以继续调用此对象上的方法,并按此顺序访问子元素,您可以使用查找element_by_xpathfind element_by_class name,例如:

wd = driver.find_element_by_css_selector('div[node-type="repeat_list"]')
wd.find_element_by_class_name("list_box").find_element_by_class_name("list_ul").find_elements_by_class_name("list_li S_line1 clearfix") 

依此类推,直到您在层次结构中到达所需元素并按照您的意愿提取其内容。

我希望这有帮助!