NetBeans'ta Java Maven'le Selenium WebDriver Kurulumu

Öncelikle kurulum sürecini basitleştirmek için Maven'i kullanacağız. Maven'e aşina değilseniz, aslında JAR dosyalarını manuel olarak indirip kitaplıklarınıza eklemek zorunda kalmadan proje bağımlılıklarınızı kolayca içe aktarmanıza olanak tanıyan bir paket yöneticisidir. İsterseniz JAR dosyalarını manuel olarak yükleyebilirsiniz; ihtiyacınız olan tüm bağımlılıkları bulmak biraz daha fazla zaman alır.

Yeni Maven Java Uygulama Projesi Oluşturun

Yeni bir Maven projesi oluşturmak için Dosya > Yeni Proje'ye tıklayın ve Maven'i, ardından Java Uygulamasını seçin;

NetBeans'ta Java Maven'le Selenium WebDriver Kurulumu

 

Maven Projesini ve Konumunu Yapılandırma

Daha sonra projeniz için bazı ayrıntıları yapılandırmanız gerekir. Basitlik amacıyla bu projeye HelloSelenium adını vereceğiz. Grup Kimliği alanına girdiğinizde, bunu genellikle birincil alan adınıza tersten ayarlamak istediğiniz paketinizin kurallı adına (com.contradodigital) ayarladığınızı fark edeceksiniz; bu daha sonra Paket adını otomatik olarak dolduracaktır. altta com.contradodigital.helloselenium olacak. Bu, paketlerinizi benzersiz bir referansa sahip olacak şekilde adlandırmak için sektördeki en iyi uygulamadır.

NetBeans'ta Java Maven'le Selenium WebDriver Kurulumu

Pom.xml Dosyanızı Açın

Daha sonra bağımlılıklarınızı yönetmek için Maven projelerinde kullanılan pom.xml dosyanızı yapılandırmamız gerekiyor. NetBeans'te bir Maven projesi oluşturduğunuzda, sizin için çok basit bir pom.xml dosyası oluşturulur. Kullanışlı gibi görünüyor ama çok fazla bilgi içermiyor, dolayısıyla Maven'e daha az aşina olanlar için yararlı olmaktan çok kafa karıştırıcı olabilir.

NetBeans'ta Selenium WebDriver Kurulumu

 Varsayılan pom.xml dosyasını açtığınızda aşağıdakine benzer görünecektir;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>VfsMaven2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <exec.mainClass>com.mycompany.vfsmaven2.VfsMaven2</exec.mainClass>
    </properties>
</project>

Bu iyi bir başlangıç noktası gibi görünüyor ancak ilgili bağımlılıkları kolayca ekleyip bunun çalışmasını sağlamanız için uzun bir yol. Şimdi Maven'i kullanmaya başlamanız için pom.xml dosyanızın nasıl görünmesi gerektiğine bakalım.

Pom.xml Dosyanızı Yapılandırın

Pom.xml dosyanızın nasıl görünmesi gerektiğine geçmeden önce Selenium'u çalışır duruma getirmek için gereken birincil kitaplıkların neler olduğuna bir göz atalım. Oldukça küçük bir sayı var, ancak perde arkasında her zaman açık olmayan pek çok bağımlılık da var.

Bütün bunlara neden ihtiyaç duyduğunuzu ve farkların neler olduğunu bana sormayın. Selenyum belgeleri o kadar da iyi değil ve işlerin yürümesi için bunlara ihtiyaç duyulmuş gibi görünüyor. Mutlak minimum kitaplık kümesinin ne olduğunu görmek için yukarıdakilerin kombinasyonlarıyla oynamak istiyorsanız, lütfen bulgularınızı aşağıya yorum olarak yazın.

Artık bunu biliyoruz; pom.xml dosyanızda yapılandırmamız gereken birkaç bit var;

  • Eklenti Depoları – Varsayılan olarak yapılandırılmış hiçbiri yoktur. Bu yüzden Maven Merkezi Deposunu eklememiz gerekiyor
  • Depolar – Yukarıdaki gibi
  • Bağımlılıklar – NetBeans ortamınıza doğrudan aktarılabilmesi için 6x proje bağımlılığı eklememiz gerekiyor

Yukarıdakilerin hepsini yapabilmek için pom.xml dosyanızın aşağıdaki gibi görünmesi gerekir;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.contradodigital</groupId>
    <artifactId>HelloSelenium</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>
    <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Benim kullandığım pom.xml dosyası

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>VfsMaven2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <exec.mainClass>com.mycompany.vfsmaven2.VfsMaven2</exec.mainClass>
    </properties>
   
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chromium-driver -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chromium-driver</artifactId>
            <version>4.20.0</version>
        </dependency>

    </dependencies>
</project>

 

Bunu yaptıktan sonra kaydedin. Daha sonra proje adınıza sağ tıklayın ve tüm bağımlılıkları NetBeans projenize çekecek 'Bağımlılıklarla Oluştur'u (Build with Depencies) seçin. Burada başarılı bir derleme mesajı görmelisiniz;

NetBeans'ta Java Maven'le Selenium WebDriver Kurulumu

Ayrıca, NetBeans Projenizde şu anda içe aktarılan Bağımlılıkların ve Test Bağımlılıklarının toplam sayısının, içe aktarılan 6 JAR dosyasından önemli ölçüde fazlaya ulaştığını da fark etmelisiniz. Bu, Maven gibi bir paket bağımlılığı yönetim sistemi kullanmanın en büyük faydalarından biridir çünkü işlerin kolaylıkla yürümesine yardımcı olur. Artık manuel olarak içe aktarılan farklı kitaplıkların tümünü bulmanız gerektiğini ve her şeyi senkronize tutmanız gerektiğini hayal edebiliyor musunuz? İşte artık sizin için otomatik olarak içe aktarılanlar;

NetBeans'ta Java Maven'le Selenium WebDriver KurulumuNetBeans'ta Java Maven'le Selenium WebDriver Kurulumu

Maven'i makinenize ilk kez kuruyorsanız, yol boyunca birkaç sorunla karşılaşabileceğinizi unutmayın. Yaygın sorunlardan biri, NetBeans'in hangi durumu bildirdiği bir hatayla ilgilidir;

""cmd" programı çalıştırılamıyor, hatalı biçimlendirilmiş argüman gömülü alıntı içeriyor"

Neyse ki bunu düzeltmek için C:Program FilesNetBeans 8.2etcnetbeans.conf dosyasını düzenlemeniz ve netbeans_default_options içeren satıra bir miktar metin eklemeniz yeterlidir ;

-J-Djdk.lang.Process.allowAmbiguousCommands=true

Böylece satırın tamamı artık okunuyor;

netbeans_default_options=”-J-client -J-Xss2m -J-Xms32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J- Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Djdk.lang.Process.allowAmbiguousCommands=true”

Bunun neden gerekli olduğunu merak ediyorsanız bu sürüm notunda sorun daha ayrıntılı olarak açıklanmaktadır.

Çalıştırdığınız NetBeans / Java / JDK / Maven vb. sürümüne bağlı olarak bunun gibi tuhaf nüansların olacağını göreceksiniz. Nadiren işler sorunsuz bir şekilde sıralanır. Dolayısıyla, kurulumunuzda biraz farklı sorunlarla karşılaşırsanız, gelecekte başkalarına yardımcı olacak bir çözüm bulduğunuzda lütfen aşağıya bir yorum bırakın.

Kaynaklar

 

 

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...