gpt4 book ai didi

java - 在 Perl 中使用 java 对象

转载 作者:行者123 更新时间:2023-11-30 08:18:12 25 4
gpt4 key购买 nike

场景:

有一个 java 类,如下所示:

public class TestSelenium {
public void googleTest() throws Exception {
WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.google.com/webhp?complete=1&hl=en");
}
}

有一个perl程序,它利用Inline::Java模块来调用上面编写的java类的googleTest。 Perl 程序看起来像。

use warnings;
use Selenium::Remote::Driver;

use Inline Java => 'STUDY',

CLASSPATH => 'C:\selenium\selenium-java-2.37.0\selenium-2.37.0\libs\selenium-java-2.37.0.jar;C:\selenium\SeleniumTestPoc\bin\MyJar.jar;C:\selenium\selenium-java-2.37.0\selenium-2.37.0\libs\selenium-server-standalone-2.37.0.jar',

STUDY => ['TestSelenium'];

$test= TestSelenium->new;

$test->googleTest;

现在上面的 Perl 代码将打开 IExplorer 并转到 google.com 页面。在我的 Perl 程序中进一步 $test->googleTest;我想使用由 java(WebDriver driver = new InternetExplorerDriver();) 打开的同一浏览器并执行文本“Cheese”的搜索。

问题是,WebDriver类的对象(在本例中为“driver”)是否可以在我的Perl程序中进一步使用,以便我可以使用相同的浏览器并在Perl中对其执行不同的UI操作?

最佳答案

我假设如果您将 WebDriver 变量带入 googleTest() 方法之外(使其可用于类中的所有方法),那么您可以编写TestSelenium 中引用相同 WebDriver 的其他方法,您可以在 Perl 中调用它们。

TestSelenium 修改为如下内容:

public class TestSelenium {
private WebDriver driver = new InternetExplorerDriver();

public void googleTest() throws Exception {
driver.get("http://www.google.com/webhp?complete=1&hl=en");
}

public void searchForCheese() throws Exception {
// Your actions here can still reference the driver
}
}

然后在调用 $test= TestSelenium->new;

之后

执行 $test->googleTest;$test->searchForCheese; 理论上应该引用相同的驱动程序,进而引用相同的浏览器窗口。

编辑:

如果您想将driver对象传递回perl,请尝试这样的操作。

更改 googleTest() java 方法,以在该方法完成后返回驱动程序(我将使用您原来的方法,但两者都应该有效):

public WebDriver googleTest() throws Exception {     
WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.google.com/webhp?complete=1&hl=en");
return driver;
}

然后我认为你可以通过 $mydriver= $test->goggleTest; 挂接到 perl 中的驱动程序句柄;

我假设您将能够通过 $mydriver 访问 WebDriver Hook

关于java - 在 Perl 中使用 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29365052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com