2016-02-19 10 views
0
from pywinauto import application 

app=application.Application() 
3. app.connect(title_re = "/Zero Hedge$/") 
4. app.connect(title_re = "/| Zero Hedge/") 

Я хочу, чтобы получить окно Chrome, как это: http://www.zerohedge.com/news/2016-02-18/markets-ignore-fundamentals-and-chase-headlines-because-they-are-dyingПочему регулярное выражение не работает хорошо в Pywinauto

Как вы видите, когда вы посещаете веб-сайт, название веб-сайт содержит «| Нулевой Хедж «в последней части этого или только« Нулевой хедж ».

Тем не менее, я все равно получаю WindowNotFoundError, поднятый независимо от строки 3 или строки 4. Почему регулярное выражение не работает?

Благодарим за помощь!

+1

Ваше первое регулярное выражение, вероятно, не работает, потому что вы используете «$» в качестве конца строки, но вы следовали за ним с другим символом «/». Второе регулярное выражение, вероятно, не работает, потому что «|» является или оператором в пределах регулярных выражений, поэтому вам нужно избежать его с помощью «\». См. Это для деталей: http://www.regular-expressions.info/anchors.html –

+0

Прежде всего, глубоко благодарю вас за помощь! Я изучил регулярное выражение на китайском веб-сайте, в котором говорилось, что если я хочу обнаружить определенную строку в последнем, я должен использовать «/ str $ /». Итак, вы имеете в виду, что я должен удалить последний «/». Например: app.connect (title_re = "/ Zero Hedge $")? О втором регулярном выражении я добавляю «\» следующим образом: app.connect (title_re = "/ \ | Zero Hedge /"). Это все еще не работает ... Однако, действительно спасибо за вашу помощь! –

+0

Повторите ваши регулярные выражения без символов «/» и «впереди». –

ответ

0

попробовать это, чтобы получить список всех ваших окон/названий:

from pywinauto import findwindows 

print findwindows.find_windows(title_re=".*") 

что вы должны получить список всех окон, а затем построить ваш регулярное выражение основаны от результатов.