我正在尝试使用Selenium和Python来单击文本字段,这会打开一个弹出式面板,选择该弹出窗口的文本输入区域,然后输入文本。
switch_to_window
和switch_to_frame
似乎无法正常工作。在之前的一个问题中我询问过Selenium,有人告诉我暂停程序,直到我需要的元素可用。该解决方案适用于该问题,但不适用于此问题,所以我假设我有一个不同的问题,而且我对Selenium来说太新了解它是什么。
这就是我试图点击的原始框如下所示:
此框的Inspect Element:
单击该描述框时,应打开此窗口:
选择此元素将文本输入:
所以在我的代码中我有:
descriptionBox = driver.find_element_by_id('kiadvany_fulszoveg_text')
descriptionBox.click()
这不会使程序出错,但它似乎也没有真正点击该元素。为了让事情更加混乱,我让它完全正常工作,它打开了正确的描述文本框,如上图所示,但它甚至在我尝试完全相同的事情时根本不起作用。
小组的ID是:
正如我所提到的,使用switch_to_frame
或switch_to_window
切换到此面板ID是我尝试过的第一件事,但我收到了No Such Element错误。
因为我看到描述框打开一次正确,但再也没有,我假设问题出在哪里。我希望,有一次它突然出现,我试图把文字放到字段中,看看它是否也会起作用,但那时我还没有到达那里,所以我不知道#39;不知道这是否有效。
提前感谢任何可以提供帮助的人!
答案 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()