我正在尝试使用python中的selenium自动化每天的packt freebook,并且似乎无法访问登录表单。 这是我到目前为止所做的事情
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
pkt = "https://www.packtpub.com/packt/offers/free-learning"
chromedriver = webdriver.Chrome()
chromedriver.get(pkt)
elem = chromedriver.find_element_by_class_name("twelve-days-claim")
elem.click()
elem2 = chromedriver.find_element_by_class_name("login-popup")
elem2.click()
直到现在这件事情有效但在那之后我无法找到正确的元素,我尝试过什么结果"元素不可见"当我尝试发送密钥时,我尝试了以下任何成功。
1. username = chromedriver.find_element_by_id("login-form-email")
2.username = chromedriver.find_element_by_id("email")
3.username = chromedriver.find_element_by_id("email-wrapper")
4.username = chromedriver.find_element_by_class_name("cf")
我如何实现这一目标。我知道并非所有元素在开始时都可见,但在elem2.click()
之后,这个登录相关按钮应该在DOM中可见。如果我错了,请纠正我
答案 0 :(得分:1)
我尝试使用CSS选择器,它对我有用。希望它也会对你有所帮助。在这里我尝试了:
final int selection = pref.getInt("ChatRepeatPosition", 0);
list = (ListView) findViewById(R.id.simpleListView);
list.setItemChecked(selection, true);
如果这解决了这个问题,请告诉我。
答案 1 :(得分:1)
避免元素不可见异常的唯一方法是在代码中显式等待,直到元素可见,无论您是否尝试通过Xpath,CSS选择器或按ID查找元素。