我有一个Java代码,它实现了Selenium Web驱动程序。每当运行此代码时,它将打开一个网站,在文本区域输入一些信息然后提交。虽然有一个问题,但现在它可以按照我的要求运行。我不喜欢这个应用程序的用户在网络驱动程序上可靠的事实。这意味着如果用户拥有Safari,则必须使用Web驱动程序,如果用户使用Chrome,则必须使用Chrome等网络驱动程序。 因此,考虑到这一点,我想知道是否有替代我的代码,它完全相同。但它不依赖于Web驱动程序,只会在用户拥有的任何浏览器中执行相同的操作。 注意我是那个将创建Java应用程序必须连接到的网站和后端php的人。所以我不介意,如果我必须改变该网站上的某些东西,做一个替代工作。 我添加了我的Java / Selenium和html / php脚本以确保列出所有内容。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class uOnline {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://mywebsite.com");
WebElement textBoxElement = driver.findElement(By.name("Send"));
textBoxElement.sendKeys("testing testing #1");
textBoxElement.submit();
driver.close();
}
}
<!DOCTYPE html>
<html>
<body>
<form action="saveInfo.php" method="POST" id="sInfoForm">
<textarea rows="4" cols="50" name="Send"></textarea>
<input type="submit">
</form>
</body>
</html>
<?php
$file = 'uploads/file.txt';
$text = $_POST['Send'];
file_put_contents($file, $text . PHP_EOL, FILE_APPEND | LOCK_EX);
?>
在被告知JBrowserDriver后,我尝试过使用它,唯一的问题是它没有提交任何内容,也没有任何错误。因此,让我有点难以知道什么是错的。
目前看起来如下所示。
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.machinepublishers.jbrowserdriver.JBrowserDriver;
import com.machinepublishers.jbrowserdriver.Settings;
import com.machinepublishers.jbrowserdriver.Timezone;
public class uOnline {
public static void main(String[] args) {
JBrowserDriver driver = new JBrowserDriver(Settings.builder().
timezone(Timezone.AMERICA_NEWYORK).build());
driver.get("https://mywebsite.com");
WebElement textBoxElement = driver.findElement(By.name("Send"));
textBoxElement.sendKeys("testing JBrowser driver");
textBoxElement.submit();
driver.quit();
}
}