Selenium(python)切换到弹出面板

时间:2017-06-20 16:21:52

标签: python html selenium

我正在尝试使用Selenium和Python来单击文本字段,这会打开一个弹出式面板,选择该弹出窗口的文本输入区域,然后输入文本。

switch_to_windowswitch_to_frame似乎无法正常工作。在之前的一个问题中我询问过Selenium,有人告诉我暂停程序,直到我需要的元素可用。该解决方案适用于该问题,但不适用于此问题,所以我假设我有一个不同的问题,而且我对Selenium来说太新了解它是什么。

这就是我试图点击的原始框如下所示:

enter image description here

此框的Inspect Element:

enter image description here

单击该描述框时,应打开此窗口:

enter image description here

选择此元素将文本输入:

enter image description here

所以在我的代码中我有:

descriptionBox = driver.find_element_by_id('kiadvany_fulszoveg_text')
descriptionBox.click()

这不会使程序出错,但它似乎也没有真正点击该元素。为了让事情更加混乱,我让它完全正常工作,它打开了正确的描述文本框,如上图所示,但它甚至在我尝试完全相同的事情时根本不起作用。

小组的ID是:

enter image description here

正如我所提到的,使用switch_to_frameswitch_to_window切换到此面板ID是我尝试过的第一件事,但我收到了No Such Element错误。

因为我看到描述框打开一次正确,但再也没有,我假设问题出在哪里。我希望,有一次它突然出现,我试图把文字放到字段中,看看它是否也会起作用,但那时我还没有到达那里,所以我不知道#39;不知道这是否有效。

提前感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:1)

试试这个

 descriptionBox = driver.find_element_by_id('kiadvany_fulszoveg_text')
 driver.execute_script('arguments[0].click();', descriptionBox)

actions = ActionChains(driver)
actions.move_to_element(descriptionBox)
actions.click(descriptionBox)
actions.perform()