我已经阅读了类似的问题,其中一个应该是答案,但是当我尝试它时它只给出了部分解决方案。
我参考问题:Disable images in Selenium Python
我的问题是我尝试了这个解决方案并且一些图像没有出现,而是来自的图像:
<img href="www.xxx.png">
正在加载。 有没有办法告诉firefox / selenium不要得到它? 如果没有,有没有办法从我回来的dom元素中丢弃它,通过
self._browser.get(url)
content=self._browser.page_source
例如在dom树上做某种find replace?
浏览器配置与上一个问题的浏览器相同:
firefox_profile = webdriver.FirefoxProfile()
# Disable CSS
firefox_profile.set_preference('permissions.default.stylesheet', 2)
# Disable images
firefox_profile.set_preference('permissions.default.image', 2)
# Disable Flash
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false')
# Set the modified profile while creating the browser object
self._browser = webdriver.Firefox(firefox_profile=firefox_profile)
------------------------------------- CORRECTION --------- ----------------------------
我一直在挖掘,我学到的是那个,
如果我检查文本文档,我看到selenium / firefox组合,它没有带来图像,然后保留为链接。
但是当我这样做的时候:
self._browser.save_screenshot("info.png")
我收到了一个包含所有img链接的24兆文件 谁能解释一下这件事呢? 感谢
答案 0 :(得分:8)
您可以使用以下代码禁用图像:
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference('permissions.default.image', 2)
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false')
driver = webdriver.Firefox(firefox_profile=firefox_profile)
如果你需要阻止一些特定的网址......嗯...... 我想你需要添加字符串:
127.0.0.1 www.someSpecificUrl.com
测试开始前到hosts文件,测试完成后删除它。
答案 1 :(得分:2)
在最新的Firefox版本struct {char symbol; byte count;} input[] = {
{'a', 2}, {'X' ,3} ,{'!', 1}
};
const byte inputcount = sizeof(input)/sizeof(input[0]); // 3 in this test
char expanded[20]; // will get the result
void setup() {
Serial.begin(9600);
char* resultpos = expanded;
for (auto& elem:input) {
for (byte p = 0; p < elem.count; p++) {
*resultpos++ = elem.symbol;
}
}
*resultpos = 0; // to make it a printable char array
Serial.println(expanded); // should give "aaXXX!"
}
void loop() {}
中,无法更改。要禁用图像,请切换到ChromDriver或按照建议的here使用替代范围。