Tom*_*y N 8 python firefox selenium save-as
我想用Selenium
在Python
保存网页上MacOS Firefox
.
到目前为止,我已设法点击COMMAND + S
弹出SAVE AS window
.然而,
我不知道如何:
有人可以帮忙吗?
以下是我用来点击的代码COMMAND + S
:
ActionChains(browser).key_down(Keys.COMMAND).send_keys("s").key_up(Keys.COMMAND).perform()
Run Code Online (Sandbox Code Playgroud)
此外,我使用这种方法的原因是我遇到Unicode编码错误: -
写一个html文件:
file_object = open(completeName, "w")
html = browser.page_source
file_object.write(html)
file_object.close()
Run Code Online (Sandbox Code Playgroud)
写入csv文件:
csv_file_write.writerow(to_write)
Run Code Online (Sandbox Code Playgroud)
错误:
UnicodeEncodeError:'ascii'编解码器不能对位置1中的字符u'\ xf8'进行编码:序数不在范围内(128)
with open('page.html', 'w') as f:
f.write(driver.page_source)
Run Code Online (Sandbox Code Playgroud)
你想要实现的是Selenium无法做到的.打开的对话框不是Selenium可以与之交互的对象.
你可以做的收尾是收集page_source
它,它会为你提供单个页面的整个HTML并将其保存到文件中.
import codecs
completeName = os.path.join(save_path, file_name)
file_object = codecs.open(completeName, "w", "utf-8")
html = browser.page_source
file_object.write(html)
Run Code Online (Sandbox Code Playgroud)
如果你真的需要保存整个网站,你应该使用像AutoIT这样的工具.这样就可以与保存对话框进行交互.
您无法与系统对话框(如保存文件对话框)进行交互。如果要保存页面html,可以执行以下操作:
page = driver.page_source
file_ = open('page.html', 'w')
file_.write(page)
file_.close()
Run Code Online (Sandbox Code Playgroud)