2017-08-08 1 views
-1

Ich versuche eine Desktop-Anwendung auf dem Mac zu automatisieren. Ich habe den folgenden Code geschrieben:Automatisierung der Desktop-Anwendung unter Mac OS

import java.net.MalformedURLException; 
import java.net.URL; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.testng.annotations.Test; 

public class createTemplate { 

    @Test 
    public void newTemplate() throws InterruptedException, MalformedURLException { 

     String fileMenu = "/AXApplication[@AXTitle='AppiumForMac']/AXMenuBar[0]/AXMenuBarItem[@AXTitle='File']"; 
     String createNewTemplate = "/AXApplication[@AXTitle='OpsGenie']/AXMenuBar[0]/AXMenuBarItem[@AXTitle='File']/AXMenu[0]/AXMenuItem[@AXTitle='Create New Template']"; 
     String templateName = "/AXApplication[@AXTitle='OpsGenie']/AXWindow[@AXIdentifier='_NS:10' and @AXSubrole='AXStandardWindow']/AXSheet[0]/AXTextField[@AXIdentifier='_NS:114']"; 
     String supportedRoles = "/AXApplication[@AXTitle='OpsGenie']/AXWindow[@AXIdentifier='_NS:10' and @AXSubrole='AXStandardWindow']/AXSheet[0]/AXScrollArea[@AXIdentifier='_NS:181']/AXTable[@AXIdentifier='_NS:185']/AXRow[@AXSubrole='AXTableRow']/AXCell[0]/AXButton[@AXIdentifier='_NS:49']"; 
     String numberOfPodes = "/AXApplication[@AXTitle='OpsGenie']/AXWindow[@AXIdentifier='_NS:10' and @AXSubrole='AXStandardWindow']/AXSheet[0]/AXStaticText[@AXIdentifier='_NS:85']"; 
     String VRCast = "/AXApplication[@AXTitle='OpsGenie']/AXWindow[@AXIdentifier='_NS:10' and @AXSubrole='AXStandardWindow']/AXSheet[0]/AXStaticText[@AXIdentifier='_NS:17']"; 
     String doneButton = "/AXApplication[@AXTitle='OpsGenie']/AXWindow[@AXIdentifier='_NS:10' and @AXSubrole='AXStandardWindow']/AXSheet[0]/AXButton[@AXTitle='Done' and @AXIdentifier='_NS:283']"; 
     DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability("platform","Mac"); 
     WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4622/wd/hub"),capabilities); 
     driver.get("OpsGenie"); 
     Thread.sleep(2000); 
     driver.findElement(By.xpath(fileMenu)).click(); 
     driver.findElement(By.xpath(createNewTemplate)).click(); 
     driver.findElement(By.xpath(templateName)).sendKeys("New Template"); 
     driver.findElement(By.xpath(supportedRoles)).click(); 
     driver.findElement(By.xpath(numberOfPodes)).sendKeys("1"); 
     driver.findElement(By.xpath(VRCast)).sendKeys("Yes"); 
     driver.findElement(By.xpath(doneButton)).click(); 

    } 

} 

Und ich erhalte den folgenden Fehler:

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
System info: host: 'TACH0029', ip: '192.168.1.8', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_144' 

Ich weiß nicht, was das Problem ist. Kann jemand helfen?

+1

Selen ein Entwickler-Tool ist es, Webseiten in Browsern zu testen. Meines Wissens kann es keine willkürlichen Anwendungen kontrollieren. – cello

+0

Selenium kann mit AppiumFor Mac für die Automatisierung von Desktop-Anwendungen auf dem Mac verwendet werden. Bitte beachten Sie den Link https://medium.com/@rajuayyampillai/how-to-automate-any-desktop-application-d7b4615d6f1f – Amrutha

Antwort

0

Selen ist nur für die Automatisierung der Webanwendung vorgesehen.

Wenn Sie Desktop-Anwendung zu automatisieren, können Sie eine von unten Frameworks versuchen: -

  • QTP
  • Sikuli
  • Auto-IT

QTP Einführung: - (gegen Entgelt Anwendung)

QTP steht für QuickTest Professional, ein Produkt von Hewlett Packard (HP). Dieses Tool hilft den Testern, einen automatisierten Funktionstest ohne Überwachung durchzuführen, sobald die Skriptentwicklung abgeschlossen ist. HP QTP verwendet Visual Basic Scripting (VBScript) zum Automatisieren der Anwendungen. https://www.guru99.com/quick-test-professional-qtp-tutorial-1.html

Sikuli: - (kostenlose Anwendung)

Sikuli automatisiert alles, was Sie auf dem Bildschirm sehen. Es verwendet Bilderkennung, um GUI-Komponenten zu identifizieren und zu steuern. Es ist nützlich, wenn es keinen einfachen Zugriff auf den internen oder Quellcode einer GUI gibt.

http://www.softwaretestinghelp.com/sikuli-tutorial-part-1/

Auto-IT: - (kostenlose Anwendung)

AutoIt v3 ist eine Freeware-BASIC-ähnliche Skriptsprache entwickelt, für das Windows-GUI-Automatisierung und allgemeines Scripting. Es verwendet eine Kombination aus simulierten Tastenanschlägen, Mausbewegung und Fenster-/Steuermanipulation, um Aufgaben auf eine Weise zu automatisieren, die mit anderen Sprachen nicht möglich oder nicht zuverlässig ist (z. B. VBScript und SendKeys). AutoIt ist auch sehr klein, eigenständig und läuft auf allen Windows-Versionen ohne lästige "Laufzeiten"!

http://toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/

Hoffe, es wird Ihnen helfen :)

+0

Selenium kann für die Automatisierung von Desktop-Anwendungen auf Mac mit Hilfe von AppiumFor Mac-Anwendung verwendet werden. Bitte beachten Sie den Link https://medium.com/@rajuayyampillai/how-to-automate-any-desktop-application-d7b4615d6f1f – Amrutha