toggleSwitch硒按钮用于searchtempest.com

时间:2019-01-28 16:51:24

标签: python-3.x selenium

在搜索风暴中,我试图在源下找到切换开关按钮的位置,但是我似乎找不到任何可以用python硒切换切换开关的位置。该网站如下:

https://www.searchtempest.com/search?search_string=desk&category=8&subcat=sss&hasPic=&maxAsk=&maxYear=&minAsk=&minYear=&srchType=&cityselect=zip&location=90210&maxDist=500&region_us=1&region_can=1&region_mex=1&Region=combined&addCities=&subCities=&q=desk++%22for+sale%22

我单击了searchfilters下的sources按钮,这提示一个子菜单出现在屏幕上,我想取消选择除eBay结果以外的所有内容。

我试图通过xPath,css_selector,按类使用find,但没有任何效果。我找不到位置,也无法取消切换所需的部分。

1 个答案:

答案 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&region_us=1&region_can=1&region_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用于“完成”定位器,直到它变为可单击为止。希望对您有帮助...