我正在努力制作一个Python机器人来单击列表中的按钮,该按钮使用selenium重复它自己

问题描述 投票:0回答:1

我想制作一个Python机器人来完成我重复做的日常工作,并且做同样的工作,所以为此我使用selenium和chrome。我想单击一个重复的按钮,但在列表中,我找不到单击的方法,我尝试了 XPATH 但它不起作用,它甚至没有单击一次,我想在所有列表上单击它,长时间重复此过程。在此处输入图像描述 这是我遇到的错误

回溯(最近一次调用最后一次):文件“c:\Users ehan\OneDrive\Desktop\python auto elisiting.py”,第 77 行,按钮 = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, button_xpath))).click()

文件“C:\ Local \ Programs \ Python \ Python312 \ Lib \ site-packages \ selenium \ webdriver \ support \ wait.py”,第105行,直到引发TimeoutException(消息,屏幕,堆栈跟踪)

selenium.common.exceptions.TimeoutException:消息:Stacktrace:Backtrace:GetHandleVerifier [0x00F9A813+48355](无符号)[0x00F2C4B1](无符号)[0x00E35358](无符号)[0x00E609A5](无符号)[0x00E60B3B](无符号)[0x00E8E232](无符号)[0x00E7A784](无符号)[0x00E8C922](无符号)[0x00E7A536](无符号)[0x00E582DC](无符号)[0x00E593DD] GetHandleVerifier [0x011FAABD+2539405] [0x0123A78F +2800735] GetHandleVerifier [0x0123456C+2775612] GetHandleVerifier [0x010251E0+616112](无符号)[0x00F35F8C](无符号)[0x00F32328](无符号)[0x00F3240B](无符号)[0x00F24FF7] BaseThreadInitThunk [0x75507BA9+25] RtlInitializeExceptionChain [0x7753C11B+107] RtlClearBits [0x7753C09F+191]

这是我用过的功能,但没有用

button_xpath="//\[@id='mount_0_0_e+'\]/div/div\[1\]/div/div\[3\]/div/div/div\[1\]/div\[1\]/div\[2\]/div/div/div\[2\]/div\[1\]/div/div\[3\]/div/div/span/div/div/div\[1\]/div/div/div/div\[2\]/div/div\[2\]/div/div\[2\]/div/div/span/div"

button = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, button_xpath))).click()

这些是我用过但不起作用的技巧。 我认为我没有以正确的方式执行 XPath。

这是按钮的 HTML

<div aria-label="Relist this item 🅿  AvaiLabLe  📞 For price !" class="x1i10hfl xjbqb8w x1ejq31n xd10rxx x1sy0etr x17r0tee x972fbf xcfux6l x1qhh985 xm0m39n x1ypdohk xe8uvvx xdj266r x11i5rnm xat24cr x1mh8g0r xexx8yu x4uap5 x18d9i69 xkhd6sd x16tdsg8 x1hl2dhg xggy1nq x1o1ewxj x3x9cwd x1e5q0jg x13rtm0m x87ps6o x1lku1pv x1a2a7pz x9f619 x3nfvp2 xdt5ytf xl56j7k x1n2onr6 xh8yej3" role="button" tabindex="0"><div role="none" class="x1n2onr6 x1ja2u2z x78zum5 x2lah0s xl56j7k x6s0dn4 xozqiw3 x1q0g3np xi112ho x17zwfj4 x585lrc x1403ito x972fbf xcfux6l x1qhh985 xm0m39n x9f619 xn6708d x1ye3gou x1qhmfi1 x1r1pt67"><div class="x6s0dn4 x78zum5 xl56j7k x1608yet xljgi0e x1e0frkt"><div role="none" class="x9f619 x1n2onr6 x1ja2u2z x193iq5w xeuugli x6s0dn4 x78zum5 x2lah0s x1fbi1t2 xl8fo4v"><i data-visualcompletion="css-img" class="x1b0d499 xep6ejk" aria-hidden="true" style="background-image: url(&quot;https://static.xx.fbcdn.net/rsrc.php/v3/yz/r/t2GBcB0lq1J.png&quot;); background-position: 0px 0px; background-size: auto; width: 16px; height: 16px; background-repeat: no-repeat; display: inline-block;"></i></div><div role="none" class="x9f619 x1n2onr6 x1ja2u2z x193iq5w xeuugli x6s0dn4 x78zum5 x2lah0s x1fbi1t2 xl8fo4v"><span class="x193iq5w xeuugli x13faqbe x1vvkbs x1xmvt09 x1lliihq x1s928wv xhkezso x1gmr53x x1cpjm7i x1fgarty x1943h6x xudqn12 x3x7a5m x6prxxf xvq8zen x1s688f x1dem4cn" dir="auto"><span class="x1lliihq x6ikm8r x10wlt62 x1n2onr6 xlyipyv xuxw1ft">Relist this item</span></span></div></div><div class="x1ey2m1c xds687c x17qophe xg01cxk x47corl x10l6tqk x13vifvy x1ebt8du x19991ni x1dhq9h x1o1ewxj x3x9cwd x1e5q0jg x13rtm0m" role="none" data-visualcompletion="ignore" style="inset: 0px;"></div></div></div>
python python-3.x selenium-webdriver selenium-chromedriver
1个回答
0
投票

尝试这个 XPath 表达式:

# to locate first 'Relist this item' element
button_xpath="//div[contains(@aria-label,'Relist this item')][1]"
# to locate second 'Relist this item' element
button_xpath="//div[contains(@aria-label,'Relist this item')][2]"

等等。

© www.soinside.com 2019 - 2024. All rights reserved.