Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带selenium的字符串中的正则表达式_Python_Regex_Xpath - Fatal编程技术网

Python 带selenium的字符串中的正则表达式

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

我正在使用selenium,使用find_element_by_path方法来进行一些web抓取,我在获取通过页面改变的路径时遇到了一些问题,我知道路径是如何编写的,但是路径中的一个字符串通过我的循环改变了,我想知道如何使用regex来解决它

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

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值的外观