Как получить координаты изображения в Сикули?
У меня есть этот графический интерфейс в нашем проекте (пожалуйста, имейте в виду мою иллюстрацию, мне не разрешено делать скриншот на работе)
----------------------------------------------
(1) Header |
----------------------------------------------|
(2) Files | (3) | Drop-down button (Options)
----------------------------------------|-----|
| |
----------------------------------------|-----|
| |
----------------------------------------|-----|
| |
-----------------------------------------------
Мне нужно протестировать один файл в каждом типе файлов, который может поддерживать наш продукт. Конечная цель - использовать эту (3) выпадающую кнопку. Вот краткое изложение моего кода, когда я в этой части
find_filetype = find.imagedict(filetypeicon.png) #(2) filetype
freg = find_filetype.right()
if freg.exists(drop-down.png): #(3) drop-down icon
freg.click(drop-down.png)
Теперь после нажатия (3) появится выпадающее меню с 4 пунктами действия. Так, например, если я нажму (3a): из (3b - 3d) будет отображаться ниже как минимум 2-3 выпадающих элемента.
----------------------------------------------
Header |
----------------------------------------------|
| (3a)|
----------------------------------------------|
| (a1) | | #a1 = action 1
--------------------------------|---------|---|
| (a2) | | #a2 = action 2
--------------------------------|---------|---|
|__(a3)___| |
-----------------------------------------------
Если я нажму (3c): раскрывающееся меню будет отображаться выше (причуда), показывая не менее 2 раскрывающихся элементов.
----------------------------------------------
Header |
----------------------------------------------|
| (a1) | |
--------------------------------|---------|---|
| (a2) | |
--------------------------------|_________|---|
| (3c)|
----------------------------------------|-----|
| |
----------------------------------------------
Мой обходной путь для этого:
снимок экрана все элементы действий и
if / elifs + dragDrop ()
что делает мои сценарии медленными (я выполняю сотни итераций каждый день)
Есть ли способ, которым я могу найти (a1) (потому что он всегда присутствует после нажатия (3)), сохранить его координаты и использовать его в качестве параметра для scrolldown_codes, как это
#after clicking drop-down
#find and get (action1) coordinates
def scroll_down(coordinates): #pass it here
while not exist(action(n).png): #n = action choice
end_Y = coordinates
start_Y = coodinates - few_Y
dragdrop(start_Y, end_Y)
wait(1)
click(action(n).png)
Пожалуйста, помогите мне! Не стесняйтесь предложить что-нибудь полезное!
Примечание. Мне разрешается только перетаскивать и перетаскивать текст в графическом интерфейсе, потому что мы разрабатываем продукт с сенсорным экраном.
1 ответ
Фактическая прокрутка, как и в случае с полосой прокрутки, вероятно, не является наилучшим решением, так как требует множества дополнительных действий, которые все подвержены сбоям по разным причинам. В таких случаях я обычно советую использовать клавиатуру для управления выбором. На самом деле вариантов мало, и это зависит от того, как ведет себя ваше приложение. Поэтому я перечислю несколько трюков, которые могут быть использованы в вашем сценарии, и вы решите, что подходит вам больше всего.
Прежде всего, имейте в виду, что вы можете ускорить время поиска, ограничивая область, которую вы ищете. Есть много способов сделать это. Например:
Разделите экран, если вы знаете, что искомые шаблоны ожидаются только в определенной области.
Относительный поиск / Расширение региона. Вы можете найти соответствующий пункт (3) и затем развернуть область вправо, чтобы захватить область, в которой находится селектор (4) (3 точки). Это значительно ускорит поиск, так как он будет смотреть только на небольшую область, а не на весь экран, и это гарантирует, что вы нажимаете правильный (4) элемент. Больше информации и примеров о расширении региона здесь. Подробнее об оптимизации времени поиска здесь.
Теперь к фактическому выбору пункта в меню. Итак, как я уже упоминал, я считаю, что вам лучше использовать клавиатуру для выбора элемента. Это означает, что нужно выбрать / щелкнуть первый элемент в списке, а затем нажать кнопку со стрелкой вниз. x
раз, пока вы не достигнете пункта меню вы после. Есть несколько способов правильно нажать кнопку со стрелкой вниз:
Жесткий код это. Если вы знаете, что данный элемент занимает четвертое место в списке, просто нажмите 4 раза.
Нажимайте кнопку со стрелкой вниз, пока не дойдете до нужного элемента. Это может быть немного медленнее и может потребовать создания дополнительных снимков экрана, но может оказаться полезным, если вы не знаете, в каком порядке находятся элементы, или если это может измениться.