print('start')
from selenium import webdriver
from selenium.webdriver.common.touch_actions import TouchActions
from selenium.webdriver.chrome.service import Service as ChromeService
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", True)
options.add_experimental_option('w3c', True)
service = ChromeService(executable_path=CHROMEDRIVER_PATH)
driver = webdriver.Chrome(service=service, options=options)
driver.get('https://stackoverflow.com/')
actions = TouchActions(driver)
actions.scroll(0,500).perform()
print('end')
如上面所示,当运行代码‘actions.滚动’时,它将抛出一个异常,如下所示:
selenium.common.exceptions.WebDriverException:消息:未知命令:在W3C模式下不能调用非W3C标准命令
我不想将配置'w3c‘修改为’False‘,在selenium 4中还有其他使用TouchActions的方法吗?经营环境如下:
硒4.1.0
97.0.4692.71
发布于 2022-06-22 04:47:38
TouchActions已被弃用为v8 Appium - https://github.com/appium/java-client/blob/master/docs/v7-to-v8-migration-guide.md#touch-actions
下面的代码是一个基于w3Actions的长压机示例
WebElement tc=driver.findElement(By.xpath("Your Xpath"));
PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Sequence longpress = new Sequence(finger, 1);
longpress.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), tc.getLocation().x,tc.getLocation().y));
longpress.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg());
longpress.addAction(new Pause(finger,Duration.ofSeconds(3)));longpress.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
driver.perform(Arrays.asList(longpress));
https://stackoverflow.com/questions/72298669
复制相似问题