700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Selenium——文件另存为

Selenium——文件另存为

时间:2023-05-08 23:42:32

相关推荐

Selenium——文件另存为

1. 背景

Selenium自动化不支持多选和文件另存为

2. 解决方案

Action和Robot实现文件另存为和多选

import org.openqa.selenium.interactions.Actions;import java.awt.Robot;

3. CTRL+A多选

Actions ac = new Actions(driver);ac.keyDown(Keys.CONTROL);// ac.keyDown(Keys.SHIFT) 控件连续且较多时使用ac.click(WebElement1);ac.click(WebElement2);ac.keyUp(Keys.CONTROL);// ac.keyUp(Keys.SHIFT)ac.perform();

此方案在ie浏览器下无法动作(Selenium3.9 + IEDriver3.4.0 + ie11)。

Robot robot = new Robot();robot.keyPress(KeyEvent.VK_CONTROL);// robot.keyPress(KeyEvent.VK_SHIFT);WebElement1.click();WebElement2.click();--------------------------------------click的替代方案:robot.mouseMove(WebElement1.getLocation().x, WebElement1.getLocation().y);robot.mousePress(InputEvent.BUTTON1_MASK);robot.mouseRelease(InputEvent.BUTTON1_MASK);--------------------------------------robot.keyRelease(KeyEvent.VK_CONTROL);// robot.keyRelease(KeyEvent.VK_SHIFT);

此方案在chrome浏览器下无法动作(Selenium3.9 + ChromeDriver87 + Chrome87)。

4. 另存为

public void type(String characters) {StringSelection stringSelection = new StringSelection(characters);Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);robot.keyPress(KeyEvent.VK_CONTROL);robot.keyPress(KeyEvent.VK_V);robot.keyRelease(KeyEvent.VK_V);robot.keyRelease(KeyEvent.VK_CONTROL);}public String download(WebDriver driver, String Name) {try {File file = new File(Name);if (file.exists()) {// 删除同名文件file.delete();}robot = new Robot();robot.setAutoDelay(1000);if (System.getProperty("browser").equals("ie")) {// 获取下载框交点,弹出另存为robot.keyPress(KeyEvent.VK_ALT);robot.keyPress(KeyEvent.VK_N);robot.keyRelease(KeyEvent.VK_N);robot.keyRelease(KeyEvent.VK_ALT);robot.delay(1000);robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);robot.delay(1000);robot.keyPress(KeyEvent.VK_DOWN);robot.keyRelease(KeyEvent.VK_DOWN);robot.delay(1000);robot.keyPress(KeyEvent.VK_DOWN);robot.keyRelease(KeyEvent.VK_DOWN);robot.delay(1000);robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER);}else if(System.getProperty("browser").equals("edge")){// 获取下载框交点,弹出另存为robot.keyPress(KeyEvent.VK_F6);robot.keyRelease(KeyEvent.VK_F6);Thread.sleep(1000);robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER);}robot.delay(2000);type(Name);robot.delay(1000);robot.keyPress(KeyEvent.VK_ALT);robot.keyPress(KeyEvent.VK_S);robot.keyRelease(KeyEvent.VK_S);robot.keyRelease(KeyEvent.VK_ALT);robot.delay(1000);robot.keyPress(KeyEvent.VK_ALT);robot.keyPress(KeyEvent.VK_Q);robot.keyRelease(KeyEvent.VK_Q);robot.keyRelease(KeyEvent.VK_ALT);} catch (AWTException e) {;} catch (Exception e) {;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。