我根本没有运气让ActionChains操作在Chrome中工作,特别是drag_and_drop,我没有找到任何解决方法。
就我而言,我正在处理一个问题,即只有将元素拖到某个字段中时,数据表才会出现。如果我尝试使用ActionChains来执行此操作,则该程序将什么也不做并挂起。
这是在python中使用硒。
我的Chrome版本为75.0.3770.100
下面是示例代码的片段,应该重新创建这种情况:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import time
import re
### Start Process
# create a new Chrome session
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.maximize_window()
driver.get('https://www.w3schools.com/html/html5_draganddrop.asp')
dragged = driver.find_element_by_xpath('//*[@id="drag1"]')
dropped = driver.find_element_by_xpath('//*[@id="div2"]')
ActionChains(driver).drag_and_drop(dragged, dropped).perform()
此代码应将徽标从左侧的框拖到右侧,但不会执行任何操作。
编辑:这是在shell中返回的内容:
DevTools listening on ws://127.0.0.1:54994/devtools/browser/a9093d6c-8ee0-4140-84fe-dd3009412fbc
[14976:20964:0710/120727.552:ERROR:ssl_client_socket_impl.cc(947)] handshake failed; returned -1, SSL error code 1, net_error -100
[14976:20964:0710/120727.576:ERROR:ssl_client_socket_impl.cc(947)] handshake failed; returned -1, SSL error code 1, net_error -100
Press any key to continue . . . [14976:20964:0710/120736.634:ERROR:ssl_client_socket_impl.cc(947)]
handshake failed; returned -1, SSL error code 1, net_error -100
答案 0 :(得分:0)
@pcalkins知道了!这是工作代码!我只是将声明变量的字符串的最后一行移到了函数调用中,因此可以在不同情况下进行更改。非常感谢!
o , o2 = Lambda(crop)([o , o2])
o = Add()([ o , o2 ])