Selenium Python提取文本后。单击()

Selenium Python提取文本后。单击(),python,selenium,xpath,element,Python,Selenium,Xpath,Element,大家好, 我在尝试点击网站上的一个元素时遇到了很多麻烦,然后从点击中提取文本。另一个需要考虑的问题是,该代码必须足够健壮,才能循环 在下面修改过的网页源代码中,id='atelno80112862'是我识别要单击的元素的方式。单击后,我想要的电话号码“(65)6890 6333”将替换网页上的文本“Call”。之后,id='telno80112862'是我识别要提取的文本的方式 <div id="ctl00_ContentPlaceHolder1_dgrdCompany_ctl02_idC

大家好,

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

在下面修改过的网页源代码中,id='atelno80112862'是我识别要单击的元素的方式。单击后,我想要的电话号码“(65)6890 6333”将替换网页上的文本“Call”。之后,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>
这是部分有效的,当我循环时,每次迭代都会得到:

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

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


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

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

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]))

您好,sers,我尝试了这个,但仍然无法提取第二个电话号码。但是,您的代码解决了我为什么要尝试的问题:除了:输出。我在网站中添加了一些信息,以防我遗漏了一些我没有提供的信息!您好,代码工作起来很有魅力。干杯!您的代码可以修改为em爬网吗还有邮箱地址吗?如果是的话,我会深入研究并尝试这样做。谢谢!我正在尝试爬网的网站是
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]))