首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium,根据"onclick“值选择

Selenium,根据"onclick“值选择
EN

Stack Overflow用户
提问于 2019-08-08 17:37:08
回答 3查看 701关注 0票数 1

使用Selenium,我将在网页上找到下面的复选框。

代码语言:javascript
运行
复制
<input type="checkbox" value="1" onclick="             document.getElementById('lastCheminClicked').value='123';             createInputsBinaireCell(25,'colonne5',1,0789,1,1,0,this.checked, this);">

其独特之处在于"onclick“中的'123‘值,这就是selenium应该寻找的内容。

有什么办法在页面上找到吗?我尝试过xpath,但没有成功。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-10 11:05:31

XPath选择器允许使用包含()函数,该函数可用于DOM元素的属性值或文本值的部分匹配。

相关的选择器将类似于:

代码语言:javascript
运行
复制
//input[contains(@onlclick, '123')]

演示:

更多信息:

票数 0
EN

Stack Overflow用户

发布于 2019-08-08 20:00:14

正如您所提到的,部分值123onclick事件中是不同的,因此要定位元素,可以使用以下任何一个定位器策略

  • 使用CSS_SELECTOR: 元素=WebDriverWait(驱动程序,WebDriverWait“inputtype=‘复选框’”))
  • 使用XPATH: 元素=WebDriverWait(驱动程序,“//123@type=‘WebDriverWait’并包含(@onclick,‘123’)”))
  • 注意事项:您必须添加以下导入: 从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC
票数 2
EN

Stack Overflow用户

发布于 2019-08-08 17:43:43

您可以尝试找到所有的输入标记,然后遍历每一个查看onclick属性。例如:

代码语言:javascript
运行
复制
from selenium.webdriver.common.by import By

input_tags = driver.find_elements(By.TAG_NAME, 'input')
found_tag = None
for input_tag in input_tags:
    onclick_attribute = input_tag.get_attribute('onclick')
    if ".value='123'" in onclick_attribute:
        found_tag = input_tag
        break

您可能需要围绕get_attribute调用进行异常处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57418041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档