小编Del*_*ous的帖子

在Python中使用Selenium WebDriver时处理Firefox没有响应?

我正在使用Selenium和Python来测试一个Web应用程序; 但是,Firefox会定期进入"无响应"状态.当Firefox处于此状态时,脚本将挂起,直到我关闭它.

我试过了:

br = webdriver.Firefox()
br.set_page_load_timeout(10)
Run Code Online (Sandbox Code Playgroud)

br = webdriver.Firefox()
br.implicitly_wait(10)
Run Code Online (Sandbox Code Playgroud)

我担心我的问题不会被一个wait或者timeout方法解决,因为页面是Ajax.该.click().submit()方法发送一个POST回答问题和响应是通过JavaScript与一个新的问题更新页面的字典.(这是我使用Google Chrome开发者工具中的网络标签Ctrl + Shift + I所了解的)

问题是:

如何在Selenium中捕获Firefox Not Responding情况?

我想抓住这种情况,以便我可以关闭浏览器并开始一个新的浏览器.


ExperimentsWithCode的回答之后编辑:
这是我的代码片段来说明我的问题.

def answer_questions(self):
    q = QuestionParser(self.br.page_source)
    q.add_to_db()
    qid = q.get_qid()
    # My answer
    my_answer_id = q.get_my_answer()
    self.br.find_element_by_id(my_answer_id).click()
    # Submit answer
    self.br.find_element_by_xpath('//*[contains(@id, "submit_btn_")]').click()
    try:
        find_id = "submit_btn_" + str(qid)
        element = WebDriverWait(self.br,10).until(EC.presence_of_element_located((By.ID, find_id)))
    except:
        print 'I caught you'
    self.rnd(mu=7, s=2) # a method to sleep …
Run Code Online (Sandbox Code Playgroud)

python firefox selenium

14
推荐指数
1
解决办法
7731
查看次数

美国人口普查API-使用Python获取某个州的每个城市的人口

我在让每个州的特定州的人口都遇到问题。我确实得到了城市人口,但是如果我将每个城市的人口总数相加,我得到的数字将不会与州人口数相同。

我得到了我的API密钥,P0010001变量用于总人口,在马萨诸塞州使用FIPS 25,并按地理级别“地方”(根据我的理解,其意思是城市)来请求人口。

这是我使用的Python 3代码:

import urllib.request
import ast


class Census:
    def __init__(self, key):
        self.key = key

    def get(self, fields, geo, year=2010, dataset='sf1'):
        fields = [','.join(fields)]
        base_url = 'http://api.census.gov/data/%s/%s?key=%s&get=' % (str(year), dataset, self.key)
        query = fields
        for item in geo:
            query.append(item)
        add_url = '&'.join(query)
        url = base_url + add_url
        print(url)
        req = urllib.request.Request(url)
        response = urllib.request.urlopen(req)
        return response.read()

c = Census('<mykey>')
state = c.get(['P0010001'], ['for=state:25'])
# url: http://api.census.gov/data/2010/sf1?key=<mykey>&get=P0010001&for=state:25
county = c.get(['P0010001'], ['in=state:25', 'for=county:*'])
# …
Run Code Online (Sandbox Code Playgroud)

python census python-3.x

4
推荐指数
1
解决办法
3182
查看次数

使用Python编辑Windows 8电源选项

问题:
每次重新启动计算机时,Windows 8的电源设置都会恢复为默认设置,并在一个小时后使计算机进入睡眠状态。除非我这样说,否则我不希望计算机进入睡眠状态...我必须进入“控制面板”>“系统和安全性”>“电源选项”>“编辑计划设置”,然后手动将“使计算机进入睡眠状态”编辑为“从不”。


我想要的是:
一个Python脚本,用于在Windows 8中编辑电源选项。我将其设置为在每次重新启动时运行。

我已经搜索了Python模块来编辑Windows设置,但是找不到我想要的东西。我玩过win32api来控制我的课程,但在其文档中找不到Power Options。


Julius Caesar关于使用powercfg命令行选项的提示是完美的。这是我最终使用的简单脚本:

import subprocess
subprocess.call("powercfg -change -standby-timeout-ac 0")
Run Code Online (Sandbox Code Playgroud)

-standby-timeout-ac选项设置为零,因此我的计算机永远不会进入睡眠状态

python windows windows-8

3
推荐指数
1
解决办法
1081
查看次数

正确的Python语法和语义:if,else,pass

有没有首选/适当的风格?

这个:

def fx(Boolean):
    if Boolean:
        # Do stuff.
    else:
        pass
Run Code Online (Sandbox Code Playgroud)

或这个:

def fx(Boolean):
    if Boolean:
        # Do stuff.
Run Code Online (Sandbox Code Playgroud)

else: pass如果您不希望发生任何事情,是否优先考虑?
我已经阅读了PEP 8 - Python Code样式指南,并没有找到任何与我的问题有关的内容.

python syntax if-statement semantics

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