我想浏览一个网站,以便在我的国家的医院安排医疗预约,为此,我使用以下代码:
from selenium import webdriver
d = webdriver.Chrome()
d.get("http://www.mojtermin.mk/map/spetsijalist?specialty=meditsinska_genetika&location=grad_skopje&clinic=jzu_uk_za_ginekologija_i_akusherstvo&resource=873745910")
d.maximize_window()
d.implicitly_wait(20)
d.find_element_by_id('cdk-describedby-message-0').text
termins = d.find_element_by_id(id_='cdk-describedby-message-0').text
print(termins)
当我运行代码时,Chrome成功打开并显示了网站,但通过id查找元素,并没有返回任何内容,只有空字符串
当我检查铬合金中的该元素时,我发现:
<div id="cdk-describedby-message-container" aria-hidden="true" style="display: none;"><div id="cdk-describedby-message-0">Нема слободни термини во наредните 3 месеци.</div></div>
我希望通过元素的返回值查找元素,在本例中为:“3”
我尝试了许多不同的方法,但每次我得到空字符串或找不到元素
注: 价值翻译:“未来3个月内没有免费时间表”
用
get_attribute("textContent")
代替text
诱导
WebDriverWait
()并等待presence_of_element_located
()和下面的css选择器输出:
文本为
Нема слободни термини во наредните 3 месеци.
的元素位于父<div>
元素中,其style
属性设置为display: none;
因此,由于元素在网页上不可见,Selenium将无法以通用方式与WebElement交互
但是,有几种方法可以提取文本,如下所示:
使用
CSS_SELECTOR
:使用
XPATH
:使用
document.getElementById
和文本内容:控制台输出:
注意:您必须添加以下导入:
您要查找的
<div>
被另一个样式属性为display: none
的<div>
重叠。您应该使用java脚本来获取文本。使用方法如下:输出
相关问题 更多 >
编程相关推荐