我的页面上有多个按钮,包含类似的href。它们仅与id_invoices不同。我想使用xpath和href点击页面上的一个按钮,如下所示:
href="/pl/payment/getinvoice/?id_invoices=461"
我可以使用以下方式选择所有按钮:
invoices = driver.find_elements_by_xpath("//a[contains(@href, '/payment/getinvoice/')]")
但我只需要选择id_invoices最高的按钮。可以吗? :)
答案 0 :(得分:0)
我不太了解python,所以给你一个方向/算法来实现相同的
Using getAttribute('@href');
您将获得网址
您需要在发货getText()
{。}} List
之后拆分所有元素。
Split by
=并获取最后一个数组值。
现在你需要将字符串输入到int,因为=之后的最后一个值将是一个数字
现在你只需选择最高价值。
答案 1 :(得分:0)
你能做的是:
hrefList = driver.find_elements_by_xpath("//a[contains(@href, '/payment/getinvoice/')]/@href")
for i in hrefList:
hrefList[i]=hrefList[i].split("id_invoices=")[-1]
max = max(hrefList)
driver.find_elements_by_xpath("//a[contains(@href, '/payment/getinvoice/?id_invoices="+str(max))+"'"+"]").click()
答案 2 :(得分:0)
由于您有一个返回所有所需元素的XPath,您只需要从每个元素中获取href
属性,将href分解为' ='获取id(字符串的第2部分),找到最大的id,然后使用id找到你想要的元素并点击它。
invoices = driver.find_elements_by_xpath("//a[contains(@href, '/payment/getinvoice/')]")
ids = []
for invoice in invoices
ids.append(invoice.get_attribute("href").split('=')[2])
results = list(map(int, ids)) // you can't do max on a list of string, you won't get the right answer
id = max(results)
driver.find_element_by_xpath("//a[@href='/pl/payment/getinvoice/?id_invoices=" + id + "']").click