首页 新闻 会员 周边

python selenium如何定位div下面的a连接?

1
悬赏园豆:10 [已解决问题] 解决于 2015-09-30 17:59

元素如下: 

<a href="javascript:void(0)" id="addRecord" class="easyui-linkbutton l-btn l-btn-small l-btn-plain" data-options="iconCls:'icon-add',plain:true" onclick="openDialog()" group=""><span class="l-btn-left l-btn-icon-left"><span class="l-btn-text">Append</span><span class="l-btn-icon icon-add">&nbsp;</span></span></a>

我试过用id定位browser.find_element_by_id("addRecord").click()  不行;

browser.find_element_by_link_text("Append").click() 也不行。

到底应该怎么定位呢?

west_Tang风的主页 west_Tang风 | 菜鸟二级 | 园豆:201
提问于:2015-06-24 14:37
< >
分享
最佳答案
1

我这个问题是描述不清楚呢,还是没人care呢,看来大家都比较忙,对这种问题根本就不想去动脑筋想。

还是自己解决吧,按道理来讲如果有id,却用find_element_by_id找不到该元素,这种情况出现的几率很小很小。最大的问题处在这个元素是否在正确的frame下面。问题就出在这,所有的find方法试过都不行,不是方法的问题,而是元素所处的位置自己没有搞清楚,如果没有在正确的frame下面,则需要切换到相应的frame,再进行定位元素的操作。

west_Tang风 | 菜鸟二级 |园豆:201 | 2015-09-30 17:55

请问下如果不是在不同的frame只是在不同的div下是不是也会定位不到?

逍遥豆 | 园豆:200 (初学一级) | 2017-10-13 15:35

@逍遥豆: 能定位到,用css路径在源码中先找找看。

west_Tang风 | 园豆:201 (菜鸟二级) | 2017-10-13 16:42

@west_Tang风: 我要定位的这个div是百度自己定义的弹窗组件,就一直都找不到它的位置,可以请帮忙看看吗?

逍遥豆 | 园豆:200 (初学一级) | 2017-10-13 16:56

@逍遥豆: 百度主页在Firefox和chrome浏览器里表现有些不同。以下是我在Firefox浏览器里可行的脚本。

#-*-coding=utf-8
from selenium import webdriver
import os,time
from selenium.webdriver.common.action_chains import ActionChains

driver= webdriver.Firefox()
driver.get("https://www.baidu.com")
action = ActionChains(driver)

#进入搜索设置页
setting = driver.find_element_by_css_selector('#u1 > a[href="http://www.baidu.com/gaoji/preferences.html"]')
action.move_to_element(setting).perform()

driver.find_element_by_link_text("搜索设置").click()

time.sleep(1)

#设置每页搜索结果为50条
m = driver.find_element_by_id("nr")
m.find_element_by_xpath("//option[@value='50']").click()
time.sleep(2)

#保存设置的信息
driver.find_element_by_css_selector('#gxszButton > a[class="prefpanelgo"]').click()
time.sleep(2)
driver.switch_to_alert().accept()
time.sleep(3)
west_Tang风 | 园豆:201 (菜鸟二级) | 2017-10-13 17:51
其他回答(1)
0

参考一下这篇文章:https://pdf-lib.org/Home/Details/1069

爬虫程序大魔王 | 园豆:106 (初学一级) | 2017-09-11 16:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册