[英]python-selenium, using xpath
基本上,我試圖通過 python 制作宏程序來購買只有一天可用的產品(它通常售罄並且只開放特定時間。)
此外,它是第一次服務,幾乎沒有機會。
所以問題是這樣的:
我嘗試使用 XPath 和 select 元素,然后使用if
和else
來區分是否可以購買(基於網站中可用和不可用的產品的比較。)。
所以我在頁面中搜索了重疊的代碼並找到了那些。
<1> 現在可用的產品是這樣的
<ul class="_3YA58cPPsy">
<li class="_3nAZvQO51p N=a:pcs.buy">
<a href="javascript:void(0)" class="OgETmrvExa">
<span class="blind">
구매하기
</span>
</a>
</li>
</ul>
<2>未開封的商品是這樣的
<ul class="_3YA58cPPsy">
<li class="_3nAZvQO51p N=a:pcs.mylist">
<a href="javascript:void(0)" role="button" class="_3Dy-2NaoiG" aria-pressed="false">
<span class="_3nBu7xChUl">
<span class="blind">
찜하기
</span>
</span>
<em class="_1c-2nfzJqH">
<336>
</em>
</a>
</li>
</ul>
所以我就這樣嘗試。
while True:
xpath='//ul[@class="_3YA58cPPsy"]'
aa=driver.find_element_by_xpath(xpath).get_attribute(class)
if aa== "OgETmrvExa"
print=("Yes")
xpath="//ul[@class='_3YA58cPPsy']"
driver.find_element_by_xpath(xpath).click()
break
else
Print=("no")
driver.refresh()
time.sleep(1)
或者,我試圖使用el.text
之一。
while True:
xpath='//ul[@class="_3YA58cPPsy"]'
el=driver.find_element_by_xpath(xpath)
if el.text="구매하기" #<- this text is the same in <1>'s text
el.click()
break
else :
driver.refresh()
它根本不起作用。 我做錯了什么? 我應該如何解決它?
此外,我將添加 <1> 和 <2> 鏈接,這是非英語的,但您會看到綠色按鈕是“購買”按鈕。 <1>: https://smartstore.naver.com/coopnc/products/4871588151?NaPm=ct%3Dkl0z3145%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3D%7Chk%3Df4d54ef22f2a5479043920e1957be34937fa2c1b
<2>: https://smartstore.naver.com/hwaflora/products/5192517936
多謝。
一些東西:
xpath='//ul[@class="_3YA58cPPsy"]'
aa=driver.find_element_by_xpath(xpath).get_attribute(class)
if aa == "OgETmrvExa":
...
本節有兩個錯誤:
class
必須用引號括起來 - "class"
"_3YA58cPPsy"
。) aa 將始終為"_3YA58cPPsy"
,因此您的 if 語句將永遠不會返回 true。在這種情況下,可能更容易搜索 ul 上方的 div,並查看該 div 中有多少個 ul:
buy = driver.find_element_by_css_selector("div.XqRGHcrncz")
lists = buy.find_elements_by_tag_name("ul")
if len(lists) == 2:
buy.click()
在您的第二個版本中:
xpath='//ul[@class="_3YA58cPPsy"]'
el=driver.find_element_by_xpath(xpath)
if el.text="구매하기" :
...
你遇到了類似的問題。 您嘗試訪問的文本不是 ul 的文本,而是 ul 的曾孫 - //ul[@class="_3YA58cPPsy"]/li/a/span
的文本。 我認為我上面引用的方法比查找特定元素來提取數據更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.