Selenium:如何处理在您尝试检查它们时隐藏的 Web 元素? Python 3.x 相关
Selenium: How to deal with web elements that get hidden when you try to inspect them? Python 3.x related
我即将在 Python 上完成自动化程序的开发,唯一阻止我的是当我尝试从 OpenSea 检查它时立即隐藏的 Web 元素 页面(不能在这里分享 link 因为它需要连接到我的钱包):
到目前为止,我只设法得到这个有问题的元素 (div#tippy-298
) 的 XPATH
和 CSS_SELECTOR
,如下所示:
button_problematic_xpath = driver.find_element(By.XPATH, '//*[@id="tippy-298"]')
button_problematic_css = driver.find_element(By.CSS_SELECTOR, '#tippy-298')
但我需要的是获取 button_problematic_css
包含的 Web 元素的 XPATH
或 CSS_SELECTOR
,更具体地说 "Starting"[=59] =] 和 "结束" Textboxes
:
此外,为了以防万一,位于 button_problematic_css
之上的元素称为“持续时间”,这是它的 XPATH
:
button_duration = driver.find_element(By.XPATH, '//*[@id="duration"]').click #after clicked it deploys div#tippy-298 element
我想知道是否有任何方法可以使用 Web 元素检查中的 Chrome Console
强制此 button_problematic_css
的可见性,或者通过使用 Python3.x
Selenium
的特定方法 立即下载此页面紧随其后的所有 Web 元素 button_problematic_css
可见。
到目前为止我尝试的是手动检查元素,方法是按 Ctrl + Shift + C and
然后单击 button_problematic_css
中包含的元素,最终在单击其内容之前隐藏该元素,尝试在此页面的 DOM 中显示此元素的内容时,也会发生同样的情况,它只是消失了。
我只希望我的程序能够编辑 “开始” 和 “结束” Textboxes
中的日期]
我想您需要单击按钮才能显示元素。我为什么猜?你需要显示 url
或者你也可以试试这个代码:
clickmore=WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, 'blabalabla')))
self.driver.execute_script("arguments[0].click();", clickmore)
button_duration = driver.find_element(By.XPATH, '//*[@id="duration"]').click()
经过几天的工作,我设法解决了这个问题,碰巧为了从这些特定元素获取 XPATH,我不得不使用 Chrome Console
并键入 $('#duration').click();
。
在这种情况下,#duration
是一个选择器,可用于获取 Web 元素按钮,该按钮允许您编辑单击时要设置的时间段。
我想一般的说法应该是这样的:
$('#your_css_selector').click();
现在,这样我就可以在 DOM 中更深入地观察,而不会让它们再次隐藏起来。
我即将在 Python 上完成自动化程序的开发,唯一阻止我的是当我尝试从 OpenSea 检查它时立即隐藏的 Web 元素 页面(不能在这里分享 link 因为它需要连接到我的钱包):
到目前为止,我只设法得到这个有问题的元素 (div#tippy-298
) 的 XPATH
和 CSS_SELECTOR
,如下所示:
button_problematic_xpath = driver.find_element(By.XPATH, '//*[@id="tippy-298"]')
button_problematic_css = driver.find_element(By.CSS_SELECTOR, '#tippy-298')
但我需要的是获取 button_problematic_css
包含的 Web 元素的 XPATH
或 CSS_SELECTOR
,更具体地说 "Starting"[=59] =] 和 "结束" Textboxes
:
此外,为了以防万一,位于 button_problematic_css
之上的元素称为“持续时间”,这是它的 XPATH
:
button_duration = driver.find_element(By.XPATH, '//*[@id="duration"]').click #after clicked it deploys div#tippy-298 element
我想知道是否有任何方法可以使用 Web 元素检查中的 Chrome Console
强制此 button_problematic_css
的可见性,或者通过使用 Python3.x
Selenium
的特定方法 立即下载此页面紧随其后的所有 Web 元素 button_problematic_css
可见。
到目前为止我尝试的是手动检查元素,方法是按 Ctrl + Shift + C and
然后单击 button_problematic_css
中包含的元素,最终在单击其内容之前隐藏该元素,尝试在此页面的 DOM 中显示此元素的内容时,也会发生同样的情况,它只是消失了。
我只希望我的程序能够编辑 “开始” 和 “结束” Textboxes
中的日期]
我想您需要单击按钮才能显示元素。我为什么猜?你需要显示 url
或者你也可以试试这个代码:
clickmore=WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, 'blabalabla')))
self.driver.execute_script("arguments[0].click();", clickmore)
button_duration = driver.find_element(By.XPATH, '//*[@id="duration"]').click()
经过几天的工作,我设法解决了这个问题,碰巧为了从这些特定元素获取 XPATH,我不得不使用 Chrome Console
并键入 $('#duration').click();
。
在这种情况下,#duration
是一个选择器,可用于获取 Web 元素按钮,该按钮允许您编辑单击时要设置的时间段。
我想一般的说法应该是这样的:
$('#your_css_selector').click();
现在,这样我就可以在 DOM 中更深入地观察,而不会让它们再次隐藏起来。