我正在尝试登录beeravocate.com来抓取(爬网)一些啤酒数据。 我尝试了硒元素,但都失败了
这是html
<input type="text" name="login" value="" id="ctrl_pageLogin_login" class="textCtrl" tabindex="1" autofocus="autofocus" style="background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGP6zwAAAgcBApocMXEAAAAASUVORK5CYII="); cursor: auto;">
我尝试使用名称、值和类,但一切都失败了。 我最后一次尝试Xpath,但也失败了
我的代码:
driver=webdriver.Chrome("~~~~\\chromedriver.exe")
driver.get("https://www.beeradvocate.com/community/login/")
from selenium.common.exceptions import TimeoutException
driver.maximize_window()
while True:
try:
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="ctrl_pageLogin_login"]'))).send_keys("scentmaster")
break
except TimeoutException:
print("too much time")
我已使按钮与以下各项配合使用:
button = driver.find_element_by_xpath('//*[@id="pageLogin"]/dl[3]/dd/input')
driver.execute_script("arguments[0].click();", button)
但是,我需要能够执行sent_键来输入id和pw来登录。。。 有人知道吗
frianH给出的上述解决方案有效:)
如果使用xpath
//*[@id = "ctrl_pageLogin_login"]
,页面上有两个字段,您所指的input
字段是第二个字段。遗憾的是,默认情况下,seleniumfind element
指的是第一个。如果您这样做,它将工作:(//*[@id = "ctrl_pageLogin_login"])[2]
但我有另一个建议,尝试通过css选择器使用以下值定位元素:
form#pageLogin input#ctrl_pageLogin_login
要输入用户名,请尝试以下xpath:
密码:
相关问题 更多 >
编程相关推荐