Python selenium:我需要帮助在Autotask.net上查找元素中的元素

时间:2016-10-24 14:19:39

标签: python selenium

我正在尝试在Autotask网页上找到一个元素,以便与它进行交互:

我正在使用以下代码在元素中搜索:

header=driver.find_element_by_css_selector('html')
body=header.find_element_by_css_selector('body')
body1=body.find_element_by_css_selector('#WorkspaceContainer')
body1.find_element_by_css_selector('#WorkspaceContainer > div:nth-child(1)')
body2=body1.find_element_by_css_selector('#WorkspaceContainer > div:nth-child(1)')
body2.find_element_by_css_selector('#PageContainer')
body3=body2.find_element_by_css_selector('#PageContainer')
body3.find_element_by_css_selector('#PageContainerFrame')
body4=body3.find_element_by_css_selector('#PageContainerFrame')
body4.find_element_by_css_selector('html')
body5=body4.find_element_by_css_selector('html')
body5.find_element_by_css_selector('body')
body6=body5.find_element_by_css_selector('body')

似乎我成功地浏览了它们,但它在这一行失败,但有例外:

body4.find_element_by_css_selector('html')

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate    element: {"method":"css selector","selector":"html"}

我通过pyautogui模块使用鼠标移动和点击来与网站进行交互,但我被告知与元素本身的交互更可靠。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

似乎您正在尝试处理iframe内的元素。

要执行此操作,您首先需要切换到此框架:

body3.switch_to_frame('PageContainerFrame')
body3.find_element_by_css_selector('html')

P.S。如果你只需要处理一个元素,你最好直接用相对XPath指向它,而不是从父元素到子元素的连续步进......