Используя JNA для соединения с пользовательским dll

не используйте статические, и это должно помочь решить вашу проблему

public IWebDriver Instance { get; set; }


using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;


namespace Nunit_ParalelizeTest
{
    public class Base
    {
        protected IWebDriver _driver;


        [TearDown]
        public void TearDown()
        {
            _driver.Close();
            _driver.Quit();
        }


        [SetUp]
        public void Setup()
        {
            _driver = new ChromeDriver();
            _driver.Manage().Window.Maximize();
        }
    }
}
11
задан Jason S 5 February 2009 в 21:51
поделиться

1 ответ

Пример (из Википедии):

import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.Native;

/** Simple example of Windows native library declaration and usage. */
public class BeepExample {
   public interface Kernel32 extends StdCallLibrary {
       // FREQUENCY is expressed in hertz and ranges from 37 to 32767
       // DURATION is expressed in milliseconds
       public boolean Beep(int FREQUENCY, int DURATION);
       public void Sleep(int DURATION);
   }
   public static void main(String[] args) {
    Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", 
           Kernel32.class);
    lib.Beep(698, 500);
    lib.Sleep(500);
    lib.Beep(698, 500);
   }
}

В этом случае мы загружаем его из библиотеки "kernel32.dll". Я надеюсь, что это делает JNA более ясный.

Править: Я объясню код: необходимо определить интерфейс (который расширяет com.sun.jna. Библиотека) с функциями Вам нужно из библиотеки. Затем назовите com.sun.jna. Native.loadLibrary ("LibraryName", InterfaceName.class). Наконец, сохраните вывод в переменной с типом интерфейса. Просто вызовите функции от той переменной.

11
ответ дан 3 December 2019 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: