HandScale = browser.find_element_by_xpath('//*[@data-xform="scale"]')
GridLineX = browser.find_element_by_class_name('outlined')
bottomLeft = browser.find_element_by_class_name('bottomLeft')
print GridLineX.size
action_chains = ActionChains(browser)
action_chains.drag_and_drop_by_offset(HandScale, 30, 30).click_and_hold(HandScale).perform()
在运行脚本的另一部分之前是否有消除此效果的方法?
答案 0 :(得分:1)
我认为您只需要release()
中的action_chains
函数即可。在当前文件末尾添加的行将是:
action_chains.release().perform()
在收到反馈后进行编辑,认为这样做无效::如果您在现有release()
内执行action_chains
,然后在您的pause()
之后添加click_and_hold(HandScale)
click_and_hold(HandScale)
,以使点击实际上保持不变,而不会立即释放。最后,由于您在release(HandScale)
中使用了webelement参数,因此我将尝试使用action_chains
在该元素上发布。因此,如果您使用以下命令,您的 action_chains.drag_and_drop_by_offset(HandScale, 30, 30).click_and_hold(HandScale).pause(5).release(HandScale).perform()
可能会做您想要的事情:
reset_actions()
如果那不起作用,则WebDriver API具有一种名为action_chains
的方法,根据文档“清除已在本地和远程存储的操作”。我将其添加到当前的perform()
下,但是您可以尝试在当前代码的action_chains.reset_actions().perform()
之前插入它。添加的行如下所示:
driver.execute_script("arguments[0].removeAttribute('cursor')", element")
如果这些都不适合您,您可以尝试
public function upload(Request $request)
{
$fileData = $request->getContent();
$fileName = uniqid().'.xlsx';
try {
// save file locally
Storage::disk('local')->put($fileName, $fileData);
// dispatch to queue
AnyJob::dispatch($fileName);
// insert in import_statuses table for status checking
AnyModel::create([
'job_id' => $fileName
]);
} catch (\Exception $e) {
error_log($e);
return response()->json([
'error' => 'Could not save file or queue not found.'
], 500);
}
return response()->json([
'status' => 'OK',
'jobId' => $fileName,
]);
}
如果您需要的话,我认为可以帮助您确定在以上方法均无效的情况下执行的操作。