在搜索风暴中,我试图在源下找到切换开关按钮的位置,但是我似乎找不到任何可以用python硒切换切换开关的位置。该网站如下:
我单击了searchfilters下的sources按钮,这提示一个子菜单出现在屏幕上,我想取消选择除eBay结果以外的所有内容。
我试图通过xPath,css_selector,按类使用find,但没有任何效果。我找不到位置,也无法取消切换所需的部分。
答案 0 :(得分:0)
尝试以下代码,它将取消切换除eBay结果以外的所有选项。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome("chromedriver.exe");
driver.get("https://www.searchtempest.com/search?search_string=desk&category=8&subcat=sss&hasPic=&maxAsk=&maxYear=&minAsk=&minYear=&srchType=&cityselect=zip&location=90210&maxDist=500®ion_us=1®ion_can=1®ion_mex=1&Region=combined&addCities=&subCities=&q=desk++%22for+sale%22");
element = driver.find_element_by_id('hybridSearchPreferencesToggle')
element.click()
element = driver.find_element_by_xpath("//input[@id='showcl_hybrid']/parent::div")
sleep(3)
element.click()
element = driver.find_element_by_xpath("//input[@id='showat_hybrid']/parent::div")
element.click()
element = driver.find_element_by_xpath("//input[@id='showaz_hybrid']/parent::div")
element.click()
element = driver.find_element_by_xpath("//input[@id='showzr_hybrid']/parent::div")
element.click()
print("Done...")
我已经使用sleep()方法在取消切换之前提供了3秒钟的延迟,如果需要,可以将其替换为WebDriverWait。
clicked=False
count=30
while not clicked or count > 0:
try:
element = driver.find_element_by_xpath("//span[@class='PUsnl' and text()='Done']/parent::button")
element.click()
print("Clicked...")
break
except:
print("Not Clicked...")
sleep(1)
count-=1
使用上面的代码单击“完成”按钮。当右侧的“欢迎使用教程模式”弹出窗口时,上面的代码将一直等到该弹出窗口消失后,再单击“完成”按钮
您可以尝试关闭该弹出窗口,而不是等待该弹出窗口消失,或者可以将WebDriverWait用于“完成”定位器,直到它变为可单击为止。希望对您有帮助...