- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是使用 Python 的 Selenium 新手,我对 ActionChains 有一个问题,我无法理解。我想单击一个元素并使用 ActionChain 将其移动到另一个元素,我尝试了 2 种方法来做到这一点。
首先是2个py文件的组合,它们不起作用
import time
from selenium.webdriver.common.action_chains import ActionChains
def action_function(driver,start,des):
time.sleep(2)
ActionChains(driver).click_and_hold(start).move_to_element(des).release().perform()
time.sleep(3)
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from hilffunktionen import hilffunktion
class PythonOrgSearch(unittest.TestCase):
driver = webdriver.Firefox('./geckodriver')
@classmethod
def firsttest(self):
self.driver.get('file:///C:/My-Project/Probe/index.html')
time.sleep(5) # Let the user actually see something!
dragitem = self.driver.find_element_by_id('mydivheader')
print(dragitem.get_attribute('innerHTML'))
time.sleep(5)
destination = self.driver.find_element_by_id('destination')
time.sleep(4)
hilffunktion.action_function(self.driver,dragitem,destination)
time.sleep(3)
但是如果我尝试在类里面直接编写它,它就会起作用
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
class PythonOrgSearch(unittest.TestCase):
driver = webdriver.Firefox('./geckodriver')
driver.get('file:///C:/My-Project/Probe/index.html')
time.sleep(5) # Let the user actually see something!
dragitem = driver.find_element_by_id('mydivheader')
print(dragitem.get_attribute('innerHTML'))
time.sleep(5)
destination = driver.find_element_by_id('destination')
time.sleep(4)
ActionChains(driver).click_and_hold(dragitem).move_to_element(destination).release().perform()
time.sleep(3)
有人可以解释一下为什么吗? ,如果我只想用第一种方式写,我应该怎么做,这样它才能起作用? 。我将非常感谢您的帮助
最佳答案
第二种方式“有效”,因为
A class definition is an executable statement.
(请参阅 class-definitions )
基本上,Python 运行类定义中的语句。
如果你想采用第一种方式(假设你想使用unittest),也许你可以将firsttest方法定义为test_xyz(self): ...最后你可以调用unittest.main(),类似basic example .
关于python - ActionChains Selenium Python 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59000314/
我正在使用 selenium2library 进行拖放操作的自动化测试。我在 Windows 8 64 位、selenium 2.48.0、ride.py 上运行。测试使用的浏览器:firefox和c
当定义了“ Action 链”但未实际应用时,这是一个非常常见且有时难以发现的问题。示例: # incorrect ActionChains(driver).move_to_element(some_
如果在操作链开始执行之前所需元素之一不存在,是否可以在 selenium 中创建操作链? 例如,我正在尝试在 selenium 中执行拖放操作。问题是放置的目标仅在发生拖动时才存在。拖放的直观解决方案
我在 Ubuntu 16.04 x64 上的 python 3.5 中使用 PageDown 键通过 Selenium 的 ActionChains 向下滚动时遇到问题。 我想要的是我的程序通过 Pa
我知道如何用下一个代码慢慢打字: elem = driver.find_element_by_id("mainCommentForm") text = "To type text here" for
运行 python/selenium 脚本时出现以下错误: AttributeError:“WebElement”对象没有属性“move_to_element” 这个特定的错误消息说明了什么?它是否没
我是使用 Python 的 Selenium 新手,我对 ActionChains 有一个问题,我无法理解。我想单击一个元素并使用 ActionChain 将其移动到另一个元素,我尝试了 2 种方法来
我是 python 的新手,正在尝试自动填写网络表单。 我收到这个错误: Traceback (most recent call last): File "main.py", line 24, in
我根据 ActionChains documentation 制作了一个脚本。但画面一动不动。哪里错了? from selenium import webdriver from selenium.we
ActionChains 是使用 Selenium 时非常方便的方法。它工作得很好,我唯一缺少的是如何在操作之间插入等待时间。 我将从官方的 google Selenium 文档中获取相同的示例。 h
我在使用 actionchains.send_keys(代码的最后一行)时遇到错误 我的代码: from selenium import webdriver as wd from selenium.w
我尝试将 send_keys 发送到 textarea,所以我使用 actionchains 发送 key 。我使用了这段代码: url='https://translate.google.com/?
这是没有错误的代码: perform() 和 reset_actions() 但这两个功能必须结合使用 import os import time from selenium import webdr
我尝试通过http://weixin.sogou.com抓取包含关键词的微信公众号 但是我发现我必须使用两次 ActionChains(driver).move_to_element(nextpage
使用 PhantomJS,下面所示的 ActionChain 永远不会执行: import sys from selenium import webdriver from selenium.webdr
我需要在测试中打开一个新的浏览器选项卡,我了解到最好的方法是简单地将适当的键发送到浏览器。我使用的是 Windows,所以我使用 ActionChains(driver).send_keys(Keys
我是一名优秀的程序员,十分优秀!