当前位置: 首页 > 知识库问答 >
问题:

在拖放操作之后,Selenium(Python)有时会拒绝让步

解柏
2023-03-14

在将元素相互拖放之后,my程序有时会挂起。所以我为它设置了一个超时,当到达定时器时,它将运行第一个代码块。它确实打印了第一行,但是Selenium拒绝让步,因为driver.close()print语句之后不运行,并且代码的其余部分呈现为不可访问。整个程序将挂起并且无法继续。这是带硒的bug还是我写的东西?

print("This took too long. Will run a different function.")
driver.close()
driver.switch_to_window(driver.window_handles[0])
sleep(2)
# REST OF CODE

可能是拖放代码吗?

if elementsToMove:
    a1 = random.choice(elementsToMove)
    a2 = random.choice(elementsToMove)
    while a1 == a2:
        a2 = random.choice(elementsToMove)
    actions = webdriver.ActionChains(driver)
    actions.drag_and_drop(a1, a2)
    actions.perform()

共有1个答案

邴兴为
2023-03-14

多年后,我会回答我自己的问题。

  1. 我不敢看我的旧代码。我应该使用sample,而不是choice两次。
  2. 我很确定这是壁虎的问题。我不知道是什么修好了它,但它确实修好了。
 类似资料:
  • 问题内容: 我无法使用Python WebDriver绑定进行拖放。我正在Mac OS X上使用Google Chrome和Firefox。这里有一个线程,那里有人遇到类似问题。 我尝试使用: 您是否设法使Python WebDriver拖放工作? 问题答案: 为了给出更新的答案,我已经验证了它现在确实可以在Mac上运行。 参考

  • 拖放操作不适用于selenium 3.8。 下面是该元素的JS代码 这就是我尝试过的。但这只是选择元素。保持和放弃是不会发生的。 我也试过这个。 也尝试过机器人。每次我只能看到源元素和目标元素都被选中。但不是被拖拽掉的。 还尝试了dragAndDrop ActionsChain。那也没用。

  • 我使用的是Selenium Webdriver的最新版本,我需要将一个元素拖放到CKeditor的anotation字段中,但它不是IFrame。根据我之前的测试,它通过机器人拖放功能与Java和Selenium2以及FF47一起工作。 现在,我需要使用最新版本的Selenium with Python3来执行此操作。我输入了这个经过验证的代码,它应该可以工作,但它会用带有拖动链接的holding

  • 我试图在元素上执行拖放操作,但它没有发生。 这是我正在处理的页面的片段。在这里,我试图将磁贴“时间”拖动并放置在磁贴“批准”的位置。截图 这是我正在使用的代码。 代码 超文本标记语言 源元素 目标元素 如果你需要更多细节,请告诉我。

  • 本文向大家介绍如何在Selenium中进行拖放动作?,包括了如何在Selenium中进行拖放动作?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助Actions类在Selenium中执行拖放动作。为了执行拖放运动,我们将使用dragAndDrop(源,目标)方法。最后,使用.perform()执行所有步骤。 示例

  • 我使用了下面的代码进行拖放。它在Firefox驱动程序中工作,但在chrome驱动程序中不起作用。 请帮忙!