Я пытаюсь автоматизировать тестовые формы, которые селен будет занимать слишком много времени (тяжелые современные формы javascript), и я хочу использовать xdotool и получить идентификаторы окон. Я вижу, вы можете позвонить xdotool selectwindow
и щелкнуть по нему, но тогда вы должны щелкнуть его каждый раз. Я хочу сказать, это «для Google Chrome окна, где заголовок вкладки х, сделать у»Как получить идентификатор окна для xdotool автоматически
я получил окно ID здесь:
[email protected]:~$ xdotool selectwindow
65011713
Это для самого хрома, каждая вкладка получает одинаковое значение при нажатии. Таким образом, я ожидал, чтобы найти, что в пс или оконного менеджера, но нет:
[email protected]:~$ wmctrl -l
0x03a00001 0 cchilders-Dell-Precision-M3800 views.py - /home/cchilders/work_projects - Atom
0x03a00048 0 cchilders-Dell-Precision-M3800 pip_freeze_update.py - /home/cchilders/scripts - Atom
0x03a000bc 0 cchilders-Dell-Precision-M3800 urls.py - /home/cchilders/work_projects - Atom
и не делает пс работы:
(clientsite)[email protected]:~$ ps -alx
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 1 0 20 0 185188 5752 ep_pol Ss ? 0:06 /sbin/init splash
1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd]
1 0 3 2 20 0 0 0 smpboo S ? 0:02 [ksoftirqd/0]
1 0 5 2 0 -20 0 0 worker S< ? 0:00 [kworker/0:0H]
1 0 7 2 20 0 0 0 rcu_gp S ? 1:10 [rcu_sched]
1 0 8 2 20 0 0 0 rcu_gp S ? 0:00 [rcu_bh]
...etc...
нигде не 65011713 обнаружиться. Xdotool - отличный инструмент, но обработка окон предполагает, что вы многое знаете о окнах, и из того, что я помню, чтобы использовать его раньше, в разделе WINDOW COMMANDS
https://www.semicomplete.com/projects/xdotool/xdotool.xhtml#window_commands есть много способов найти окно, о котором вы знаете много, но не так много, чтобы автоматизировать получение этой информации о окне. Как я могу определить идентификатор окна (формат xdotool хочет) автоматически, скажем, путем подачи сценария начальной части URL-адреса? Спасибо
Вы можете посмотреть на Google Chrome в wmtrl:
и захватить первое число, разделенных пробелом в целое:
In [13]: int("0x03e00001", 16)
Out[13]: 65011713
16 флаг в междунар говорит, что ожидать шестнадцатеричной
In [14]: int("0x03e00001")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-14-96517b980767> in <module>()
----> 1 int("0x03e00001")
ValueError: invalid literal for int() with base 10: '0x03e00001'
'65011713' - двоичное значение. Значения, возвращаемые из 'wmctrl', являются шестнадцатеричными значениями. Вам нужно будет преобразовать их, чтобы они соответствовали (хотя ни один из этих трех не делает, но потом я вообще не вижу «хром» в этом списке). Однако ничего в 'ps' здесь не имеет значения. Если вы не можете получить индивидуальные идентификаторы окон для вкладок, хотя (и, возможно, вам не удастся), вы, вероятно, не сможете настроить таргетинг на вкладку (или обязательно даже ** увидеть ** вкладки с помощью 'xdotool' в первом место).(Возможно, стоит посмотреть на результат из 'xwininfo -tree', чтобы узнать, можете ли вы найти то, что вы ищете там.) –
да, это правильно, это хлопот, но он его решает. – codyc4321
фраза ваша как вопрос, если вы хотите, чтобы я выбрал его. и я чуть не потерял свою селезенку наизнанку из чувака, чтобы закрыть что-то конкретное. <3 SO – codyc4321