繁体   English   中英

Python selenium present_of_element_located((By.XPATH, ) 需要不区分大小写

[英]Python selenium presence_of_element_located((By.XPATH, ) need case insensitive

我偶然发现了事实,然后xref在搜索页面上可能是大写或小写(甚至部分)。 如果页面上存在外部参照,无论大小写如何,如何确保脚本找到外部参照?

发布Python:Selenium xpath 以查找不区分大小写字符的元素? 谈论它不起作用,但它是 2013 年。希望它改变了。 如何写出正确的表达? 我目前的代码是:

myLink = WebDriverWait(myDriver, 
10).until(ExConditions.presence_of_element_located((By.XPATH, 
'//a[starts-with(@href,"https://www.test.org/portal/")]')))

看起来lower-case(@href)无法正常工作(至少对于Windows 7上的Firefox而言), fn:lower-case(@href)也无法正常工作。

我求translate在帖子中找到的translate

'//a[contains(translate(@href, "ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"),
"www.test.org/portal")]'

试试这个功能。

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

def If_element_is_here_do_click(xpath_arg):
        executed = 0
        while (executed == 0):
            try:
                driver.find_element(By.XPATH, xpath_arg).click()
                executed = 1
                print("Clicked")
            except:
                print("No")
                time.sleep(0.5)

并像这样调用:

If_element_is_here_do_click("/html/body/div[1]/section/main/div/div/article/div/div[2]/div/div[2]/section[1]/span[1]/button")

暂无
暂无

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

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