为了账号安全,请及时绑定邮箱和手机立即绑定

在细分网页上使用硒driver.find_element().click()

在细分网页上使用硒driver.find_element().click()

精慕HU 2022-09-13 17:22:06
首先,我是网络抓取,html和硒的新手,所以我的问题对你来说似乎没有意义。我正在尝试执行的操作:自动单击网页上的图像。手动单击此图像允许在网页的一部分上显示新信息。我是如何尝试这样做的:我发现了一些特定于此图像的内容,例如:<img src="images/btn_qmj.gif" border="0">所以我刚刚输入了蟒蛇:xpath = '//img[@src="images/btn_qmj.gif"]'driver.find_elements_by_xpath(xpath)问题:这给我返回了一个空列表。我部分理解为什么,但我没有任何解决方案。代码检查器的图像我在这里包括了我在Web检查器上获得的html树的图像。正如人们所看到的,达到我兴趣线的树给出了“/html/框架集/框架1/#document/html/正文/中心/表/tbody/tr[2]/td/a/img”。问题是我无法访问 - 通过使用xpath - #document之后的任何内容。如果我尝试复制我感兴趣的行的xpath,它只会将其跟踪到第二个“/html”。这就像页面被细分,划分,内部部分我无法访问。我想有一种方法可以访问#document内容,也许它指的是另一个网页,但我被困在了这一点上。如果有人能在这方面帮助我,我将不胜感激。
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您是否尝试过先切换到框架?

driver.switch_to.frame('gauche')


查看完整回答
反对 回复 2022-09-13
?
www说

TA贡献1775条经验 获得超8个赞

您需要先将控制切换到帧以处理其上的图像。请参阅以下代码供您参考


 driver.switch_to_frame(frame)

 WebDriverWait(driver, 20).until(

 EC.visibility_of_element_located((By.XPATH, "'//img[@src="images/btn_qmj.gif"]'"))).click()

 driver.switch_to_default_content()

注意 :: 您需要在下面添加导入


from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC


查看完整回答
反对 回复 2022-09-13
?
长风秋雁

TA贡献1757条经验 获得超7个赞

元素存在于 .为了访问元素,您需要先切换它。iframe


诱导 () 和WebDriverWaitframe_to_be_available_and_switch_to_it()


诱导 () 和WebDriverWaitvisibility_of_element_located()


WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"gauche")))

WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//img[@src='images/btn_qmj.gif']"))).click()

您需要导入以下库。


from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By


查看完整回答
反对 回复 2022-09-13
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号