新的硒。 尝试单击下图中的“评论”。 我在下面尝试过解决方案。它有效,但Python点击“评论”后抛出异常。希望有人可以解释为什么Python抛出异常以及如何解决它? 跟踪如下:
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2885, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-19-53ed02f5557e>", line 1, in <module>
browser.find_element(By.CSS_SELECTOR, "a.eiCell.cell.reviews").click()
File "C:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 77, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 493, in _execute
return self._parent.execute(command, params)
File "C:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "C:\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Reached error page: about:neterror?e=dnsNotFound&u=https%3A//.fls.doubleclick.net/activityi%3Bsrc%3D%3Btype%3Dinvmedia%3Bcat%3D%3Bu1%3D3f32e44c-d5d6-4d78-a817-7c9e0dd561a0%3Bord%3D8823339925721%3B%7Eoref%3Dhttps%253A%252F%252Fwww.glassdoor.com%252FReviews%252FGoogle-Reviews-E9079.htm%3F&c=UTF-8&f=regular&d=Firefox%20can%E2%80%99t%20find%20the%20server%20at%20.fls.doubleclick.net.
# code
browser = webdriver.Firefox(executable_path=r'C:\Program Files (x86)\Mozilla Firefox\geckodriver.exe')
url = 'https://www.glassdoor.com/Reviews/index.htm'
browser.get(url)
browser.find_element_by_id('KeywordSearch').send_keys('google')
browser.find_element_by_id('HeroSearchButton').click()
time.sleep(5)
# click the review button
# below code works but throw an exception after clicking "review".
browser.switch_to_window(browser.window_handles[1])
browser.find_element(By.CSS_SELECTOR, ".eiCell.cell.reviews").click()
[![enter image description here][1]][1]
答案 0 :(得分:0)
因为元素有多个类,所以你应该使用:
browser.find_element(By.CSS_SELECTOR, ".eiCell.cell.reviews").click()
答案 1 :(得分:0)
链接文字和部分链接文字的问题在于他们希望文本实际包含在A
标记中。在这种情况下,文本包含在SPAN
的{{1}}标记的子项中,因此它们会失败。类名称的中间案例不起作用,因为您只能指定一个类名,并且您提供了3.在这种情况下,您可以使用CSS选择器指定A
标记,如
A
或XPath指定包含“评论”文本的a.eiCell.cell.reviews
SPAN
要么应该工作。我更喜欢CSS选择器,因为CSS选择器在各种浏览器上更快更好地支持但如果它不起作用,请尝试使用XPath。
答案 2 :(得分:0)
以下是您的问题的答案:
您可以使用以下代码行点击&#34;评论&#34;在图表中。
browser.find_element_by_xpath("//a[@class='eiCell cell reviews']//span[@class='subtle']").click()
如果这回答你的问题,请告诉我。