相关疑难解决方法(0)

如何在CSV文件中编写UTF-8

我试图用PyQt4创建一个csv格式的文本文件QTableWidget.我想用UTF-8编码来编写文本,因为它包含特殊字符.我使用以下代码:

import codecs
...
myfile = codecs.open(filename, 'w','utf-8')
...
f = result.table.item(i,c).text()
myfile.write(f+";")
Run Code Online (Sandbox Code Playgroud)

它一直有效,直到单元格包含特殊字符.我也尝试过

myfile = open(filename, 'w')
...
f = unicode(result.table.item(i,c).text(), "utf-8")
Run Code Online (Sandbox Code Playgroud)

但是当出现特殊字符时它也会停止.我不知道我做错了什么.

python csv encoding utf-8

77
推荐指数
4
解决办法
11万
查看次数

使用Python Selenium保存网页

我正在使用selenium webdriver for Python 2.7:

  1. 启动浏览器:browser = webdriver.Firefox().

  2. 转到某个网址:browser.get('http://www.google.com').

此时,如何向浏览器发送"另存页面"命令?

注意:这不是我感兴趣的网页源.我想使用实际的"Save Page As"Firefox命令保存页面,这会产生与保存网页源不同的结果.

python selenium

11
推荐指数
2
解决办法
1万
查看次数

没有这样的元素:无法在生产环境中使用chromedriver和Selenium定位元素

我有硒chromedriver的问题,我无法弄清楚是什么导致它.几周前一切正常,但突然出现这个错误.问题来自以下功能.

 def login_(browser):
    try:
        browser.get("some_url")
        # user credentials
        user = browser.find_element_by_xpath('//*[@id="username"]')
        user.send_keys(config('user'))
        password = browser.find_element_by_xpath('//*[@id="password"]')
        password.send_keys(config('pass'))
        login = browser.find_element_by_xpath('/html/body/div[1]/div/button')
        login.send_keys("\n")
        time.sleep(1)
        sidebar = browser.find_element_by_xpath('//*[@id="sidebar"]/ul/li[1]/a')
        sidebar.send_keys("\n")
        app_submit = browser.find_element_by_xpath('//*[@id="sidebar"]/ul/li[1]/ul/li[1]/a')
        app_submit.send_keys("\n")
    except TimeoutException or NoSuchElementException:
        raise LoginException
Run Code Online (Sandbox Code Playgroud)

此功能在开发环境(macOS 10.11)中没有问题,但在生产环境中引发以下错误:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="sidebar"]/ul/li[1]/a"}
(Session info: headless chrome=67.0.3396.79)
(Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee97XXX),platform=Linux 4.4.0-116-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

我已经在每个环境中更新了Chrome和chromedriver(分别为v67和2.40).我也给了它更多time.sleep(15).但问题仍然存在.我最新的猜测是,webdriver的初始化可能无法正常工作:

def initiate_webdriver():
   option = webdriver.ChromeOptions()
   option.binary_location = config('GOOGLE_CHROME_BIN')
   option.add_argument('--disable-gpu')
   option.add_argument('window-size=1600,900')
   option.add_argument('--no-sandbox')
   if not config('DEBUG', cast=bool):
       display = Display(visible=0, size=(1600, 900))
       display.start() …
Run Code Online (Sandbox Code Playgroud)

python selenium selenium-chromedriver selenium-webdriver webdriverwait

9
推荐指数
1
解决办法
3017
查看次数