Selenium Python在后面提取文本。click()

2024-04-20 01:58:59 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好

我在尝试点击一个网站上的一个元素时遇到了很多麻烦,然后从中提取文本。另一个需要考虑的是这个代码必须足够健壮才能循环。在

在下面修改过的网页源代码中,id='atelno80112862'是我如何标识要单击的元素。点击后,我想要的电话号码“(65)68906333”将取代网页上的文字“呼叫”。之后,id='telno80112862'就是我如何识别我要提取的文本。在

<div id="ctl00_ContentPlaceHolder1_dgrdCompany_ctl02_idContact">
<a style="display: inline; width: 100px; cursor: pointer; cursor: hand;" id='atelno80112862' onclick="showElement('telno80112862');" title='(65) 6890 6333'>
<img src="/images/call_icon.jpg" />CALL</a>
<a style="display: none; width: 100px;" id='telno80112862' href="tel:(65) 6890 6333">(65) 6890 6333</a>

转到我的代码(我已经在问题区域中将其修改为零):

^{pr2}$

这部分起作用,当我循环时,每次迭代都会得到:

电话:(65)6890 6333 错误:没有电话号码

第一个问题是为什么我也得到了except输出?第二个问题是我无法提高path7的健壮性。只有当我提供确切的相对xpath时,它才起作用。我尝试使用部分xpath“//a[(contains(@id,'telno')]”,但似乎不起作用。在

任何帮助都将不胜感激。干杯!在


Tags: 代码文本id元素网页源代码网站style
1条回答
网友
1楼 · 发布于 2024-04-20 01:58:59

下面的代码将所有公司名称和电话号码放在一页上。在

companies = driver.execute_script('return [...document.querySelectorAll("a[id$=Hyperlink4],a[id^=telno]")].map((e,i) => e.innerText.trim())')
print(companies)

for i in range(0, len(companies), 2):
    print('{0} : {1}'.format(companies[i], companies[i+1]))

相关问题 更多 >