我正在尝试在下图中获取带下划线值的XPath。我有一个总是不同的卡片列表,我需要从突出显示的卡片内部获取值,该卡片在其类中有“突出显示”。
当我通过检查Chrome中的元素来获取XPath时,我得到类似于//*[@id="rental-asset"]/div/div[1]/div/rdo-nav-card-asset[11]/div/div[1]/div/i
的内容,这对我不起作用,因为括号中的11总是将是不同的值。如何根据这些元素的唯一类为这些元素创建XPath?
答案 0 :(得分:1)
以下是如何获得第一个带下划线的内容。我想你应该可以从这里拿走它。
import ( "net/http" )
func main() {
mux := http.NewServeMux()
handlers.TableHandler(*mux)
}
答案 1 :(得分:0)
您可以拆分xpath并在预期发生的范围内进行迭代。
假设他们有1-22的价值,你可以这样。 这是一个python代码。
str1 = '//*[@id="rental-asset"]/div/div[1]/div/rdo-nav-card-asset['
str2 = ']/div/div[1]/div/i'
for i in range(1, 22):
str3 = str1 + str(i) + str2
a = driver.find_element_by_xpath(str3).text
print a
您可以获取循环内的其他元素或数据。
如果您有任何疑惑,请在下方评论。
答案 2 :(得分:0)
您可以先找到高亮卡,然后将其用作下划线文本的搜索上下文。
代码如下:
var activeCard = driver.findElement(By.css('rdo-nav-card-asset > div.rdo-card-highlight'));
// the text of 1rd underline
var title = activeCard.findElement(By.css('.panel-title')).getText();
// the text of 2rd underline
var title = activeCard.findElement(By.xpath('.//div[@class='rdo-card-metric'][1]'))
.getText();
// the text of 3rd underline
var title = activeCard.findElement(By.css('.text-danger')).getText();
// the text of 4rd underline
var title = activeCard.findElement(By.xpath('.//div[@class='rdo-card-metric'][3]'))
.getText();