元素如下:
<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"> </span></span></a>
我试过用id定位browser.find_element_by_id("addRecord").click() 不行;
browser.find_element_by_link_text("Append").click() 也不行。
到底应该怎么定位呢?
我这个问题是描述不清楚呢,还是没人care呢,看来大家都比较忙,对这种问题根本就不想去动脑筋想。
还是自己解决吧,按道理来讲如果有id,却用find_element_by_id找不到该元素,这种情况出现的几率很小很小。最大的问题处在这个元素是否在正确的frame下面。问题就出在这,所有的find方法试过都不行,不是方法的问题,而是元素所处的位置自己没有搞清楚,如果没有在正确的frame下面,则需要切换到相应的frame,再进行定位元素的操作。
请问下如果不是在不同的frame只是在不同的div下是不是也会定位不到?
@逍遥豆: 能定位到,用css路径在源码中先找找看。
@west_Tang风: 我要定位的这个div是百度自己定义的弹窗组件,就一直都找不到它的位置,可以请帮忙看看吗?
@逍遥豆: 百度主页在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)
参考一下这篇文章:https://pdf-lib.org/Home/Details/1069