Я работаю над драйверами Python, Selenium и Chrome. У меня есть динамический c веб-сайт, и каждый раз, когда сайт загружает, меняются идентификаторы, поэтому я не могу использовать Xpath. Но я могу использовать имя класса. Я могу добраться до класса, как показано ниже; Ниже приведен код сайта.
<a class="appButton registerItemSearch-tabs-criteriaAndButtons-buttonPad-search appSearchButton appPrimaryButton appButtonPrimary appSubmitButton appNotReadOnly appIndex2" id="nodeW830" href="#" onclick="return function(me){var retVal = false; if (catHtmlFragmentCallback('W830','buttonPush',null,{asyncUpdate:true,containerSelector:'#AsyncWrapperW814',containerNodeId:'W814',success:function(html){jQuery('#AsyncWrapperW814').empty().append(html);webuiAsyncOk('#AsyncWrapperW814');}}, me) == 'skip') retVal = true;return retVal;}(this)" tabindex="118"><span class="left"></span><span class="appReceiveFocus" tabindex="-1">Search</span><span class="right"></span></a>
Однако я могу сделать следующее; чтобы добраться до элемента.
xxx = driver.find_elements_by_class_name("appButton.registerItemSearch-tabs-criteriaAndButtons-buttonPad-search.appSearchButton.appButtonPrimary.appPrimaryButton.appSubmitButton.appNotReadOnly.appIndex2")
Теперь я хочу выполнить метод onclick, связанный с классом. Я могу сделать это так же, как показано ниже:
driver.execute_script("return function(me){var retVal = false; if (catHtmlFragmentCallback('W830','buttonPush',null,{asyncUpdate:true,containerSelector:'#AsyncWrapperW814',containerNodeId:'W814',success:function(html){jQuery('#AsyncWrapperW814').empty().append(html);webuiAsyncOk('#AsyncWrapperW814');}}, me) == 'skip') retVal = true;return retVal;}(this)")
Но, как я уже говорил, я не могу жестко закодировать значения driver.execute_script. Я должен получить значения динамически. Не могли бы вы мне помочь? Если вы можете предложить способ, чтобы я мог найти элемент по имени класса и выполнить метод onclick. или как я уже говорил; Я могу найти элемент по имени класса, если я могу получить код (HTML), связанный с элементом, то я могу сделать driver.execute_script. Можете ли вы предложить путь вперед. Спасибо