Как насчет использования vuplook с iferror. Что-то вроде этого столбца D:
= iferror (vuplook (A2; Sheet2! B2: D8; 4; true); vuplook (A2; Sheet3! B2: D8; 4; true))
Это должно получить множитель из листа два, и если его здесь нет, он должен вернуть его из листа 3.
Подделка межсайтовых запросов (CSRF) - это атака, заставляющая конечного пользователя выполнять нежелательные действия в веб-приложении, в котором они в настоящее время аутентифицированы CSRF-атаки специально направлены на запросы об изменении состояния, а не на кражу данных, поскольку злоумышленник не может увидеть ответ на поддельный запрос. С небольшой помощью социальной инженерии (такой как отправка ссылки по электронной почте или в чате) злоумышленник может заставить пользователей веб-приложения выполнить действия по выбору злоумышленника. Если жертва является обычным пользователем, успешная атака CSRF может заставить пользователя выполнять запросы на изменение состояния, такие как перевод средств, изменение адреса электронной почты и т. Д. Если жертва является учетной записью администратора, CSRF может поставить под угрозу все веб-приложение.
Поэтому, когда вы используете реализацию ActionChains
Selenium как:
ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()
Предположительно, вы получаете доступ к какой-то другой веб-странице, где устанавливается сеанс и многие другие атрибуты сеанса аутентифицируются. На следующем шаге вы используете реализацию ActionChains
Selenium для вызова click()
в WebElement , который приведет вас на новую веб-страницу https://example.com
.
Но в вашем альтернативном подходе вы пытаетесь перейти непосредственно к веб-странице https://example.com
, где отсутствуют требуемые атрибуты сеанса . Следовательно, сеанс в этом случае не устанавливается, и вы видите Предупреждение как:
Warning: cross-site request forgery control is enabled
Чем проще будет следовать фактическому потоку то есть доступ к начальной веб-странице, где будет установлен сеанс и аутентифицированы необходимые атрибуты сеанса. На следующем шаге вы можете использовать реализацию Selenium ActionChains для вызова click()
нужного веб-элемента, который приведет вас на новую веб-страницу https://example.com .
В качестве альтернативы вы можете создать Chrome Profile и использовать назначенный Chrome Profile сохранить SessionAttributes и повторно использовать согласно вашему требованию.