使用Selenium WebDriver,如果我想启动Chrome浏览器,那么首先需要设置系统属性,如 -
import tensorflow as tf
def n_hot_encoding(a, n):
a = tf.convert_to_tensor(a)
n = tf.convert_to_tensor(n)
m = tf.bitwise.left_shift(1, tf.range(n)[::-1])
shape = tf.concat([tf.ones([tf.rank(a)], dtype=tf.int64), [-1]], axis=0)
m = tf.reshape(m, shape)
hits = tf.bitwise.bitwise_and(a[..., tf.newaxis], tf.cast(m, a.dtype))
return tf.not_equal(hits, 0)
在此,我们提到了System.setProperty("webdriver.chrome.driver", chromeDriverLocation);
,但它已在ChromeDriverService'中定义。因此可以直接使用该常量,如(reference doc) -
wedriver.chrome.driver
但是如果我想在特定位置下载文件,我会在firefox配置文件中提供详细信息,如 -
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);
在这里,我们可以看到 FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", folder.getAbsolutePath());
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"image/jpeg, application/pdf, application/octet-stream");
profile.setPreference("pdfjs.disabled", true);
driver = new FirefoxDriver(profile);
}
,browser.download.dir
等常量值。
这些是否定义为常数,因为我们browser.helperApps.neverAsk.saveToDisk
?所以我们可以直接在代码中使用它们。
答案 0 :(得分:1)
ChromeDriverService类支持以下字段:
因此你可以使用:
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);
但FirefoxProfile支持三种重载setPreference()
方法,如下所示:
setPreference(java.lang.String key, boolean value)
setPreference(java.lang.String key, int value)
setPreference(java.lang.String key, java.lang.String value)
这三种方法都接受键( String )和值(boolean / int / String)对并设置首选项这个特殊的档案。使用这些值配置启动时的Firefox浏览器。
所以期望的偏好,例如browser.download.dir
,browser.download.folderList
,browser.helperApps.neverAsk.saveToDisk
,pdfjs.disabled
等不是常量,而是键( String < / strong>) value (boolean / int / String)对,在代码中不能被视为常量。
答案 1 :(得分:0)
在Firefox中,您可以在地址栏中输入about:config
以查看所有首选项名称及其当前值。
对于Chrome,您可以在地址栏中输入chrome://flags
以查看所有当前设置及其值。
点击here了解详情
答案 2 :(得分:0)
您可以通过代码进行更改:
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);
或命令行参数
java -Dwebdriver.chrome.driver=chromeDriverLocation testClass