我尝试使用以下代码按最新选项排序,但它提供了以下错误
错误
Message: {"errorMessage":"Unable to find element with css selector 'span.sortedLabel'","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"107","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:34510","User-Agent":"Python http auth"},"httpVersion":"1.1","method":"POST","post":"{\"using\": \"css selector\", \"value\": \"span.sortedLabel\", \"sessionId\": \"f5246520-f7d4-11e7-a9f4-adb0a497f49e\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/f5246520-f7d4-11e7-a9f4-adb0a497f49e/element"}}
屏幕截图:可通过屏幕获取
一切都适用于Firefox,但不适用于phantomjs。
以下是代码:
from selenium import webdriver # open webdriver for specific browser
from selenium.webdriver.common.keys import Keys # for necessary browser action
from selenium.webdriver.common.by import By # For selecting html code
import time
url="https://www.magicbricks.com/property-for-rent/residential-real-estate?proptype=Multistorey-Apartment,Builder-Floor-Apartment,Penthouse,Studio-Apartment,Service-Apartment,Residential-House,Villa&Locality=Bellandur&cityName=Bangalore"
# os.environ['NO_PROXY'] = '127.0.0.1'
# driver = webdriver.Firefox()
driver = webdriver.PhantomJS(executable_path=r'D:\Setup\NEW SOFTWARE\Python\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.get(url)
try:
#driver.find_element_by_id("sort4").click()
driver.find_element_by_css_selector("span.sortedLabel").click()
driver.find_element_by_id("sort4").click()
time.sleep(3)
html = driver.page_source
except Exception as e:
print(str(e))
对此有任何解决方案吗?
答案 0 :(得分:0)
看起来你还没有实施任何超时。 FF和PahntomJS可能在页面被视为完全加载时表现不同,这可能导致FF工作正常而PhantomJS不能正常工作。要快速调试此行为,只需在您的阳离子之间添加一些隐式等待,看看它们是否有帮助。如果它工作,用适当的显式等待替换隐式等待。
隐含等待10秒的示例:
driver.implicitly_wait(10) # seconds