gpt4 book ai didi

python - 带 Selenium 的字符串内的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:35 26 4
gpt4 key购买 nike

我正在使用selenium,使用 find_element_by_path 方法进行一些网页抓取,我在获取通过页面更改的路径时遇到一些问题,我知道路径是如何编写的,但是路径中的字符串之一通过我的更改循环,我想知道如何使用正则表达式来解决它。

我有其中一个页面的代码,但是当我浏览所有页面时,下面的字符串“NUMBER”发生变化:

browser.find_element_by_xpath(re.compile('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[NUMBER]/div').click()

我想知道是否可以使用正则表达式来表示它必须单击任何“数字”,只要路径的其余部分相同,所以我尝试了这个,但我不确定语法以及如何使用正则表达式:

browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[').     + re.compile("^[1-9]\d*$")    +      ']/div').click()


browser.find_element_by_xpath(re.compile('^//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[')).click()


browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[1]/div').click()
browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[9]/div').click()
browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[4]/div').click()
browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[10]/div').click()
browser.find_element_by_xpath('//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div[6]/div').click()

路径或多或少以这种方式(随机)演变,但不是一点一点逐渐演变的。

如何解决这个问题?

最佳答案

欢迎来到SO。

如果您尝试将 NUMBER 作为循环中 xpath 的一部分传递,则可以执行以下操作。

如果 NUMBER 为整数:

browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%i]/div"%(NUMBER)).click()

如果 NUMBER 是字符串

browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%s]/div"%(NUMBER)).click()

关于python - 带 Selenium 的字符串内的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55846994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com