python selenium xpath 的tr[]中如何写变量的运算?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python selenium xpath 的tr[]中如何写变量的运算?相关的知识,希望对你有一定的参考价值。

我拿到一个元素的index值b(是一个数值),然后定位另一个元素第b个index的某个元素:
a = driver.find_element_by_xpath("//span[text()='¥2']/ancestor::td[@field='total']")
b = a.get_attribute('index')
print(b)
self.find_element_by_xpath( "//tbody[@id='dataGrid']/descendant::tr[" + b + "]).click()
目前这样可以运行。
现在我想定位第b+1个元素怎么改上面代码?

参考技术A

    认真学习 python 基础知识

    认真学习下 xpath 选择器

Python Selenium点击同一个tr不同td的链接

嗨,我想点击编辑过滤器按钮,它似乎与财政年度项目在同一个tr中,但在不同的td中。

enter image description here

这是我试过的:

driver.find_elements_by_xpath("//body//tr[@class='FilterEditCell']/td[2]/a[1]").click()

有人可以指导我吗?

谢谢。

答案

尝试在XPath下面使用:

//td[contains(., "Fiscal Yr")]/following-sibling::td/a[img[@title="Edit Filter"]]

您可能需要将ExplicitWait用于动态节点:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//td[contains(., "Fiscal Yr")]/following-sibling::td/a[img[@title="Edit Filter"]]'))).click()

以上是关于python selenium xpath 的tr[]中如何写变量的运算?的主要内容,如果未能解决你的问题,请参考以下文章

Python Selenium点击同一个tr不同td的链接

Selenium xpath 对 python 的行为与对 ruby​​ 的行为不同 [重复]

selenium 获取table中的元素。python

分享:selenium xpath

python+selenium 获取table列表中所有数据条数

Selenium:是不是可以将 xpath 与变量连接起来?