После некоторых попыток я обнаружил, что вызывает проблему. background-position
перестает работать, когда фон является таким же большим (или большим), как и его фрейм. Вот почему решение dognose работает. Он удаляет background-size
.
Как доказательство, я изменил CSS .br
-фрагмы и .br .bg-image
на следующее:
.br {
top:calc(100% - 340px - 30px);
left:calc(100% - 300px - 30px);
}
.br .bg-image {
background-position: calc(100% + 30px) calc(100% + 30px);
/* 100% puts it bottom right, + 30px offset from .br */
background-position: right -30px bottom -30px;
/* or simply use this */
height: 100%;
width: 100%;
background-size: 800px 600px;
}
Таким образом background-size
больше не равен кадру, заставляя background-position
работать так, как предполагается.
См. скрипт
Причина, по которой она не работает с процентами, связана с тем, что background-position
в буквальном смысле зависит от background-size
. Поскольку background-position: 0% 0%;
находится сверху слева, а background-position: 100% 100%;
находится справа внизу. Если фоновое изображение является таким же большим, как и содержащий фрейм, разница между 0% и 100% больше не существует.
Используя эту теорию в сочетании с calc()
, все, что она делает, это:
calc(100% - 340px - 30px)
поместите его вправо (100%), который вообще не перемещает его, а затем переместите его влево 370px (-340px - 30px).
В ваш случай идет вправо, потому что вы префикс right
перед вашим calc()
.
control_click
не использует курсор мыши.
mouse_click
использует курсор мыши.
control_click
аргументы из файла справки AutoItX.chm :
blockquote>"title", "text", "controlID" [, button [, clicks [, x [, y ]]]]
, из которых имена необязательных аргументов совпадают с
**kwargs
. [ 1122]Аргументы PyAutoIt из библиотеки для
control_click
:blockquote>"title", "control" [, **kwargs]
, где
**kwargs
- необязательные именованные аргументы.
**kwargs
принимает именованные аргументы. то естьtext="some text in the window"
Чтобы щелкнуть в элементе управления, вы можете использовать то есть:
autoit.control_click("[CLASS:Notepad]", "Edit1", x=1097, y=832)
В библиотеке код, который вы разместили, имена для
**kwargs
:blockquote>text = kwargs.get("text", "") button = kwargs.get("button", "left") clicks = kwargs.get("clicks", 1) x = kwargs.get("x", INTDEFAULT) y = kwargs.get("y", INTDEFAULT)
Он хранится в виде словаря, а метод
.get
используется для получения значения. Если вы передадитеtext="some text in the window"
, тоtext
равноsome text in the window
, иначе будет равна пустой строке, представленной в библиотеке как""
, что является значением по умолчанию.
Не уверен, как вы можете использовать мышь для двух процессов одновременно, но если вы хотите использовать ординаты для щелчка мышью на любой конкретной области, используя python
и autoit
ниже, это код для вашей справки.
import autoit
autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
autoit.win_close("[CLASS:Notepad]")
autoit.mouse_click("left",272,70)
Выше кода будет щелкнуть левой кнопкой мыши по кнопке Не сохранять . Если у вас установлено autoit
, вы можете использовать AutoIt Window info(x86)
или AutoIt Window info(x64)
, чтобы получить полную информацию об объектах Windows.
Дайте мне знать, если ответ выше полезен или нет.