我正在使用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) 我在让每个州的特定州的人口都遇到问题。我确实得到了城市人口,但是如果我将每个城市的人口总数相加,我得到的数字将不会与州人口数相同。
我得到了我的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) 问题:
每次重新启动计算机时,Windows 8的电源设置都会恢复为默认设置,并在一个小时后使计算机进入睡眠状态。除非我这样说,否则我不希望计算机进入睡眠状态...我必须进入“控制面板”>“系统和安全性”>“电源选项”>“编辑计划设置”,然后手动将“使计算机进入睡眠状态”编辑为“从不”。
我想要的是:
一个Python脚本,用于在Windows 8中编辑电源选项。我将其设置为在每次重新启动时运行。
我已经搜索了Python模块来编辑Windows设置,但是找不到我想要的东西。我玩过win32api来控制我的课程,但在其文档中找不到Power Options。
import subprocess
subprocess.call("powercfg -change -standby-timeout-ac 0")
Run Code Online (Sandbox Code Playgroud)
该-standby-timeout-ac选项设置为零,因此我的计算机永远不会进入睡眠状态
有没有首选/适当的风格?
这个:
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 ×4
census ×1
firefox ×1
if-statement ×1
python-3.x ×1
selenium ×1
semantics ×1
syntax ×1
windows ×1
windows-8 ×1