Я использую Selenium для сохранения веб-страницы. Содержимое веб-страницы будет изменяться после нажатия определенных флажков. Я хочу, чтобы щелкнуть флажок, а затем сохранить содержимое страницы. (Флажки управляются JavaScript.)Python and Selenium Чтобы «execute_script» решить «ElementNotVisibleException»
Во-первых, я использовал:
driver.find_element_by_name("keywords_here").click()
заканчивается с ошибкой:
NoSuchElementException
тогда я попробовал «XPath», как, с неявной/Явный ожидания :
URL = “the url”
verificationErrors = []
accept_next_alert = True
aaa = driver.get(URL)
driver.maximize_window()
WebDriverWait(driver, 10)
#driver.find_element_by_xpath(".//*[contains(text(), ' keywords_here')]").click()
#Or:
driver.find_element_by_xpath("//label[contains(text(),' keywords_here')]/../input[@type='checkbox']").click()
он дает ошибку:
ElementNotVisibleException
Сообщений
How to force Selenium WebDriver to click on element which is not currently visible?
Selenium Element not visible exception
предполагают, что это должно сделать флажками видимым перед нажатием кнопки, например, с помощью:
execute_script
Вопрос может звучит глупо, но как может Я обнаружил, что правильное предложение для «execute_script» - видимость checkbo x из исходного кода страницы?
Кроме того, есть ли другой способ?
Спасибо.
, кстати, строка HTML код выглядит следующим образом:
<input type="checkbox" onclick="ComponentArt_HandleCheck(this,'p3',11);" name="keywords_here">
его XPath выглядит следующим образом:
//*[@id="TreeView1_item_11"]/tbody/tr/td[3]/input
Сэр alecxe, спасибо за помощь. Вы эксперт. Я прочитал некоторые из ваших сообщений. Я пробовал строки, но оба они дают «raise TimeoutException (message)» «selenium.common.exceptions.TimeoutException: Message: ''. –
@MarkK спасибо. Но в то же время 'driver.find_element_by_xpath (" // label [contains (contains (text(), 'keywords_here')] /../ input [@ type = 'checkbox'] ")' не вызывает ошибку? Вы проверили, что xpath, который вы используете внутри 'find_element_by_xpath', используется так же, как и в« Ожидаемых условиях », которые я опубликовал? Благодарю. – alecxe
(извините, что есть ошибка - я заменил вас на то, что у меня было, но на самом деле я думаю, что ваши строки должны быть добавлены после исходных строк.) Я добавил ваши строки в оригиналы, а xpaths в них одинаковы. driver.find_element_by_xpath ("// label [contains (text(), 'keywords_here')] /../ input [@ type = 'checkbox']") сам дает «NoSuchElementException». –