Selenium web驱动程序本机函数可以工作,但ActionChains类的相同函数不在同一元素上

2024-04-27 04:17:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试使用Selenium webdriver和python实现自动化时,我面临以下问题:

简单单击在没有操作链类的情况下工作:

element.click()

但使用action chains类尝试单击不起作用:

from selenium.webdriver.common.action_chains import ActionChains

action = ActionChains(driver)

action.click(element).perform()

类似地,尝试使用action chains类拖放不起作用:

action.drag_and_drop_by_offset(element,0,100).perform()

action.drag_and_drop(element,element2).perform()

使用ActionChains会产生一个过时的元素异常。你知道吗

有没有其他方法来执行这些操作,如移动到、按下鼠标、释放鼠标、拖放等而不使用ActionChains类

进一步-直接使用driver命令:

from selenium.webdriver.remote.command import Command

driver.execute(Command.CLICK_ELEMENT, {"id":getattr(element,"id")})

但这并不是:

from selenium.webdriver.remote.command import Command

driver.execute(Command.MOVE_TO, {"id":getattr(element,"id")})

driver.execute(Command.MOUSE_DOWN, {})

driver.execute(Command.MOVE_TO, {"id":getattr(element2,"id")})

driver.execute(Command.MOUSE_UP, {})

此外,还注意到检索对象位置的jquery返回undefined,即使对象存在:

$($x('div[draggable="true" and @class="result selected-row"][1]')).position()

有什么建议吗?你知道吗


Tags: andfromimportidexecutedriverseleniumaction