selenium定位元素怎么定位一组元素呀,我这里写的不对吗

python+selenium元素定位,我想定位到sample_list一组元素取随机数,再定位到该元素下的分享要怎么实现_百度知道
python+selenium元素定位,我想定位到sample_list一组元素取随机数,再定位到该元素下的分享要怎么实现
sample = driver.find_elements_by_xpath(&//*[@id='sample_list']/tr&)sampleid = sample[random.randint(0,len(sample))]sampleid.find_element_by_css_selector(&a[title=\&分享\&]&).click()我是这么写的但是一直找不到元素
sample = driver.find_elements_by_xpath(&//*[@id='sample_list']/tr&)sampleid = sample[random.randint(0,len(sample))]sampleid.find_element_by_css_selector(&a[title=\&分享\&]&).click()我是这么写的但是一直找不到元素
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
都不是a标签~ 试下用className定位。
采纳率:96%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。随笔 - 59&
文章 - 0&评论 - 3&trackbacks - 0
我们熟知Webdriver有8种定位元素的方法,但是当需要定位一组元素的时候,可以使用Webdriver提供的与之对应的8种用于定位一组元素的方法,分别是:
find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_link_css_selector()
常见的定位一组元素一般用于以下场景:
批量操作元素,例如勾选页面上所有的复选框。
先获取一组元素,再从这组对象中过滤出需要操作的元素。例如定位页面上所有的checkbox,然后选择其中的一个进行操作。
手动创建一个checkbox.html页面:
&meta http-equiv="content-type" content="text/charset=utf-8"/&
&title&Checkbox&/title&
&link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"/&
&script src="http://cdn.bootcss.com/bootstrap/3.3.3.0/css/bootstrap.min.js"&&/script&
&h3&checkbox&/h3&
&div class="well"&
&form class="form-horizontal"&
&div class="control-group"&
&label class="control-lable" for="c1"&checkbox1&/label&
&div class="controls"&
&input type="checkbox" id="c1" /&
&div class="control-group"&
&label class="control-lable" for="c2"&checkbox2&/label&
&div class="controls"&
&input type="checkbox" id="c2" /&
&div class="control-group"&
&label class="control-lable" for="c3"&checkbox3&/label&
&div class="controls"&
&input type="checkbox" id="c3" /&
浏览器打开如下:
Python代码:
from selenium import webdriver
import time
driver = webdriver.Firefox()
file_path = r'E:\python_script\Webdriver\checkbox.html'
driver.get(file_path)
# 选择页面上所有tag name为input的元素
inputs = driver.find_elements_by_tag_name('input')
# 然后从中过滤出type为checkbox的元素,单击勾选
for i in inputs:
if i.get_attribute('type') == 'checkbox':
time.sleep(1)
driver.quit()
如果只想要选择所有复选框中的一个,那么可以:
driver.find_elements_by_tag_name('input')[1].click()
除此之外,还可以使用XP啊退货或CSS来直接判断属性值,从而进行单击操作
# 使用xpath找到type=checkbox的元素
chekboxes = driver.find_elements_by_xpath("//input[@type='checkbox']")
# 通过CSS找到type=checkbox的元素
checkboxes = driver.find_elements_by_css_selector('input[type=checkbox]')
选择之后,想要取消某一个复选框的操作:
# 把页面第二个checkbox的勾给去掉
driver.find_elements_by_css_selector('input[type=checkbox]').pop(1).click()
pop()方法用于获取列表中的一个元素(默认为最后一个元素)
pop()或pop(-1):默认获取一组元素的最后一个
pop(0): & & & & & & 默认获取一组元素中的第一个
pop(1): & & & & & & 默认获取一组元素中的第二个
阅读(...) 评论()selenium如何获取已定位元素的属性值_百度知道
selenium如何获取已定位元素的属性值
&div class=&res-status& data-fortune=&5& data-selfsos=&& data-id=&39052&&我已经定位到了div,有3个值,想得到data-id的值,怎么弄?driver.find_element_by_xpath(&//*[@id='lobby-left-container']/div[2]/div/table/tbody/tr[1]/td[2]/div&)
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
driver.find_element_by_xpath(&//*[@id='lobby-left-container']/div[2]/div/table/tbody/tr[1]/td[2]/div&).get_attribute(&data-id&)
采纳率:58%
driver.find_elements_by_xpath(&//*[@id='lobby-left-container']/div[2]/div/table/tbody/tr[1]/td[2]/div&)[-1]
driver.find_element_by_xpath(&//*[@id='lobby-left-container']/div[2]/div/table/tbody/tr[1]/td[2]/div&).get_attribute(&value&)
1条折叠回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【主要研究解决自动化测试、性能测试问题,以及分享其他综合方面的知识】...
selenium如何定位属性一样的div、span元素
在做自动化测试时,我们需要定位元素属性来进行操作,今天在做自动化时发现我要定位的元素找不到,我看了下代码发现,要定位的元素(A)属性与另一个元素(B)属性一样,我用xpath获取绝对路径后,发现找不到,找的是B元素!试了几次之后结果还是找不到,我把这两个元素单拿出来了,方便大家参考:&div id="tab-first" class="el-tabs__item is-active" aria-controls="pane-first" role="tab" aria-selected="true" tabindex="0"&A&/div&
&div id="tab-first" class="el-tabs__item is-active" aria-controls="pane-first" role="tab" aria-selected="true" tabindex="0"&B&/div& 没错,上边这两个元素,除了文字信息A、B能区分出来,其他的都一模一样这样的话别无选择了,没有frame没有层级关系,只能找能区分它俩的属性去定位了,不管是div还是span对应修改就可以了,代码如下:driver.findElement(By.xpath("//div[text()=\"A\"]")).click();//点击A(如果是span,就把div改为span) 写上运行了N次,很靠谱,分享给有需要的朋友
UI自动化定位元素之span类型元素
selenium 定位 页面上两个完全一样的元素
如何在 Selenium 中操作 SPAN 元素
selenium —— 动态id、class怎么定位
Python selenium —— 动态id、class怎么定位
python中获取div的文本内容并和想定结果进行对比
Selenium定位页面元素的方法
selenium WebDriver定位元素学习总结
Selenium+Webdriver 常用的元素定位方式
Selenium Webdriver元素定位的八种常用方法
没有更多推荐了,selenium webdriver中定位不到下面的元素,求指导_百度知道
selenium webdriver中定位不到下面的元素,求指导
用xpath, css都定位不到,还请帮忙指导
用JS代码也不行,不报错,但页面没有跳转js.executeScript(&window.location.href=\&javascript:onNext('LA')\&;&);
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏50(财富值+成长值)
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
用Class定位
你的cssSelector 怎么写的? 我看看
我想先定位到它上面的div 的,也定位不到的,下面输出size为0,不知道如何定位这个,你知道吗,还请帮忙指导一下,新手不太懂List&WebElement& divelements =driver.findElements(By.cssSelector(&div[class='p_r_main_txt2']&));System.out.println(divelements.size());
用这个试试:cssSelector: &#productType4 & div:nth-child(6) & span:nth-child(2) & i:nth-child(1)&xPath: &//div[@id='productType4']/div[6]/span/i&
试了你的selector,依旧定位不到,郁闷啊
//div[@id='productType4']//a[contains(text(),'立即购买')]如果上面的还不能定位的话或说明你那个DIV需要点击才能动态生成,有外网地址没有;可以帮你看一下。一般这种我直接用JS给他隐藏的元素赋值,没必要太纠结页面定位的问题,
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 selenium定位元素 的文章

 

随机推荐