Pywinauto:如何将焦点设置在数据框中的 window
Pywinauto: How to set focus on a window from a dataframe
我正在尝试自动化一些 windows 任务,我得到了所有 windows 打开的数据框,然后我添加了更多列以便在继续自动化之前进行一些验证.
然后我想遍历数据框中 WebBrowser
列中的所有数据,以便设置焦点并将此 windows 激活到前面,然后调整大小。
但是当我尝试以下命令时出现错误 app.set_focus()
:AttributeError: 'list' object has no attribute 'set_focus'
.
注意:我还不知道如何调整大小,我之前停了一步,但如果有人能给我提示,我将不胜感激。
我的代码:
from pywinauto import Desktop
import pandas as pd
windows = Desktop(backend="uia").windows()
window = [w.window_text() for w in windows]
# Create a dataframe in order to store the windows needed
df_windows = pd.DataFrame(window, columns =['WebBrowser'])
# Filter dataframe only to show all windows from Brave web browser
df_windows = df_windows.loc[df_windows['WebBrowser'].str.contains("Brave:", case=False)]
# Add column profile from Brave
df_windows['Profile'] = df_windows['WebBrowser'].str.split(':').str[1].str.strip()
# Add column window open from Brave
df_windows['Window'] = df_windows['WebBrowser'].str.split(':').str[0].str.strip()
# Add column about the website open from Brave
df_windows['Website'] = df_windows['Window'].str.replace(" - Brave", "").str.strip()
# Filter dataframe only to show all bombcrypto game window
df_windows = df_windows.loc[df_windows['Website'] == 'GuilhermeMatheus']
print(df_windows)
for x in df_windows['WebBrowser']:
print(x)
app = Desktop(backend="uia").windows(title=x)
app.set_focus()
# resize window after
我运行你的代码后,我发现你的应用在app = Desktop(backend="uia").windows(title=x)
是一个列表。所以需要获取list中的app元素,即app[0]
。这是固定代码,它将 运行 正确。
for x in df_windows['WebBrowser']:
#get first element in list
app = Desktop(backend="uia").windows(title=x)[0]
app.set_focus()
如果你想调整大小windows,你可以阅读文章here
我正在尝试自动化一些 windows 任务,我得到了所有 windows 打开的数据框,然后我添加了更多列以便在继续自动化之前进行一些验证.
然后我想遍历数据框中 WebBrowser
列中的所有数据,以便设置焦点并将此 windows 激活到前面,然后调整大小。
但是当我尝试以下命令时出现错误 app.set_focus()
:AttributeError: 'list' object has no attribute 'set_focus'
.
注意:我还不知道如何调整大小,我之前停了一步,但如果有人能给我提示,我将不胜感激。
我的代码:
from pywinauto import Desktop
import pandas as pd
windows = Desktop(backend="uia").windows()
window = [w.window_text() for w in windows]
# Create a dataframe in order to store the windows needed
df_windows = pd.DataFrame(window, columns =['WebBrowser'])
# Filter dataframe only to show all windows from Brave web browser
df_windows = df_windows.loc[df_windows['WebBrowser'].str.contains("Brave:", case=False)]
# Add column profile from Brave
df_windows['Profile'] = df_windows['WebBrowser'].str.split(':').str[1].str.strip()
# Add column window open from Brave
df_windows['Window'] = df_windows['WebBrowser'].str.split(':').str[0].str.strip()
# Add column about the website open from Brave
df_windows['Website'] = df_windows['Window'].str.replace(" - Brave", "").str.strip()
# Filter dataframe only to show all bombcrypto game window
df_windows = df_windows.loc[df_windows['Website'] == 'GuilhermeMatheus']
print(df_windows)
for x in df_windows['WebBrowser']:
print(x)
app = Desktop(backend="uia").windows(title=x)
app.set_focus()
# resize window after
我运行你的代码后,我发现你的应用在app = Desktop(backend="uia").windows(title=x)
是一个列表。所以需要获取list中的app元素,即app[0]
。这是固定代码,它将 运行 正确。
for x in df_windows['WebBrowser']:
#get first element in list
app = Desktop(backend="uia").windows(title=x)[0]
app.set_focus()
如果你想调整大小windows,你可以阅读文章here