Python 带selenium的字符串中的正则表达式
我正在使用selenium,使用find_element_by_path方法来进行一些web抓取,我在获取通过页面改变的路径时遇到了一些问题,我知道路径是如何编写的,但是路径中的一个字符串通过我的循环改变了,我想知道如何使用regex来解决它 我有一个页面的代码,但当我浏览所有页面时,下面的字符串“NUMBER”会发生变化:Python 带selenium的字符串中的正则表达式,python,regex,xpath,Python,Regex,Xpath,我正在使用selenium,使用find_element_by_path方法来进行一些web抓取,我在获取通过页面改变的路径时遇到了一些问题,我知道路径是如何编写的,但是路径中的一个字符串通过我的循环改变了,我想知道如何使用regex来解决它 我有一个页面的代码,但当我浏览所有页面时,下面的字符串“NUMBER”会发生变化: browser.通过xpath查找元素(重新编译('/*[@id=“exibdetail:exib”]/section[3]/div[2]/div/div[2]/div/d
browser.通过xpath查找元素(重新编译('/*[@id=“exibdetail:exib”]/section[3]/div[2]/div/div[2]/div/div/div[NUMBER]/div')。单击()
我想知道是否可以使用regex,以便说只要路径的其余部分相同,它就必须单击任何“数字”,因此我尝试了这个方法,但我不确定这里的语法和如何使用regex:
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
如果您试图在循环中传递数字作为xpath的一部分,那么可以执行以下操作
如果数字是整数:
browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%i]/div"%(NUMBER)).click()
如果数字是字符串
browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%s]/div"%(NUMBER)).click()
欢迎来到SO
如果您试图在循环中传递数字作为xpath的一部分,那么可以执行以下操作
如果数字是整数:
browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%i]/div"%(NUMBER)).click()
如果数字是字符串
browser.find_element_by_xpath("//*@id='exhibDetail:exhib']/section[3]/div[2]/div/div[2]/div/div/div[%s]/div"%(NUMBER)).click()
我想知道是否有可能使用正则表达式来表示
必须单击任何“数字”,只要路径的其余部分是
同样的
如果您想选择那些div
元素,而不考虑它们的位置(即谓词[1]
、[2]
等正在测试的内容),则根本不使用谓词:
//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div/div
我想知道是否有可能使用正则表达式来表示
必须单击任何“数字”,只要路径的其余部分是
同样的
如果您想选择那些div
元素,而不考虑它们的位置(即谓词[1]
、[2]
等正在测试的内容),则根本不使用谓词:
//*[@id="exhibDetail:exhib"]/section[3]/div[2]/div/div[2]/div/div/div/div
您需要提供一些示例(如3或4),说明您要查找的页面中的changinng值的外观。您需要提供一些示例(如3或4),说明您要查找的页面中的changinng值的外观