繁体   English   中英

如何让变量改变 XPATH - Selenium , python

[英]How to have a variable changing XPATH - Selenium , python

我试过在我的例子中找到一个包含某些文本的 xpath 单词“跟随”,但它似乎找不到元素。 为了解决这个问题,我点击了 xpath 的“关注”按钮 - 但是这些是动态的并且每一行都会改变。

我目前正在这样做:

   driver.find_element_by_xpath("//div[26]/div[3]/a/span[2]").click()
   driver.find_element_by_xpath("//div[27]/div[3]/a/span[2]").click()
   driver.find_element_by_xpath("//div[28]/div[3]/a/span[2]").click()
   driver.find_element_by_xpath("//div[29]/div[3]/a/span[2]/span").click()
   driver.find_element_by_xpath("//div[30]/div[3]/a/span[2]").click()
   driver.find_element_by_xpath("//div[31]/div[3]/a/span[2]/span").click()
   driver.find_element_by_xpath("//div[32]/div[3]/a/span[2]/span").click()
   driver.find_element_by_xpath("//div[33]/div[3]/a/span[2]").click()
   driver.find_element_by_xpath("//div[34]/div[3]/a/span[2]/span").click()
   driver.find_element_by_xpath("//div[35]/div[3]/a/span[2]").click()

但这是逐行执行的耗时 - 所以我在想如果我有一个变量"//div['X+1']/div[3]/a/span[2]" - 我会怎么做输入这个。 我也可以像这样放入代码中:

driver.find_element_by_xpath("variable").click()
//*[text()[contains(.,'theText')]]

将找到带有文本节点“theText”的对象

//*[contains(concat(' ',normalize-space(@attribute), ' '), ' value ')]

将找到属性“attribute”的值为“value”的节点

你可以使用类似的东西:

String xpathPrefix = "//div[";
String xpathSuffix = "]/div[3]/a/span[2]";

for (int i =26; i < 32; i++) {
    String fullXpath = xpathPrefix + String.valueOf(i)+ xpathSuffix ;
    driver.find_element_by_xpath.click(fullXpath);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM